Skip to content

Commit 57f3195

Browse files
ADD: Klab
1 parent 3b84eb6 commit 57f3195

33 files changed

+11922
-0
lines changed

Readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Following is a short description of all listed projects
2929
| [Imageinspector](miniprojects/Imageinspector) | Programm to manipulate images and measure objects shown in that images |
3030
| [Imageshop](miniprojects/Imageshop) | Interactive image manipulation learning program (inspired by [this](https://github.com/sysrpl/Codebot.ImageShop)) |
3131
| [Intercept theorem](miniprojects/Intercept_theorem) | Demo application to calculate the intercept theorem |
32+
| [KLab](miniprojects/KLab/) | IDE for Atmel(r) AVR(c) microcontrollers projects inspired by [KontrollerLab](https://sourceforge.net/projects/kontrollerlab/)|
3233
| [Kollision](miniprojects/Kollision) | game that tests your reaction and multitasking skills |
3334
| [LAN Chat](miniprojects/LAN_Chat) | Simple chat program for LAN (and WAN if ports are forwared) |
3435
| [Network](miniprojects/Network) | Develop tools to simulate network properties (limit and delay) |

miniprojects/KLab/KLab.lpi

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<CONFIG>
3+
<ProjectOptions>
4+
<Version Value="12"/>
5+
<General>
6+
<Flags>
7+
<CompatibilityMode Value="True"/>
8+
</Flags>
9+
<SessionStorage Value="InProjectDir"/>
10+
<ResourceType Value="res"/>
11+
<UseXPManifest Value="True"/>
12+
</General>
13+
<i18n>
14+
<EnableI18N LFM="False"/>
15+
</i18n>
16+
<BuildModes Count="1">
17+
<Item1 Name="Default" Default="True"/>
18+
</BuildModes>
19+
<PublishOptions>
20+
<Version Value="2"/>
21+
</PublishOptions>
22+
<RunParams>
23+
<FormatVersion Value="2"/>
24+
<Modes Count="1">
25+
<Mode0 Name="default"/>
26+
</Modes>
27+
</RunParams>
28+
<RequiredPackages Count="2">
29+
<Item1>
30+
<PackageName Value="SynEdit"/>
31+
</Item1>
32+
<Item2>
33+
<PackageName Value="LCL"/>
34+
</Item2>
35+
</RequiredPackages>
36+
<Units Count="13">
37+
<Unit0>
38+
<Filename Value="KLab.lpr"/>
39+
<IsPartOfProject Value="True"/>
40+
</Unit0>
41+
<Unit1>
42+
<Filename Value="unit1.pas"/>
43+
<IsPartOfProject Value="True"/>
44+
<ComponentName Value="Form1"/>
45+
<HasResources Value="True"/>
46+
<ResourceBaseClass Value="Form"/>
47+
<UnitName Value="Unit1"/>
48+
</Unit1>
49+
<Unit2>
50+
<Filename Value="uklab.pas"/>
51+
<IsPartOfProject Value="True"/>
52+
</Unit2>
53+
<Unit3>
54+
<Filename Value="unit2.pas"/>
55+
<IsPartOfProject Value="True"/>
56+
<ComponentName Value="Form2"/>
57+
<HasResources Value="True"/>
58+
<ResourceBaseClass Value="Form"/>
59+
<UnitName Value="Unit2"/>
60+
</Unit3>
61+
<Unit4>
62+
<Filename Value="unit3.pas"/>
63+
<IsPartOfProject Value="True"/>
64+
<ComponentName Value="Form3"/>
65+
<HasResources Value="True"/>
66+
<ResourceBaseClass Value="Form"/>
67+
<UnitName Value="Unit3"/>
68+
</Unit4>
69+
<Unit5>
70+
<Filename Value="unit4.pas"/>
71+
<IsPartOfProject Value="True"/>
72+
<ComponentName Value="Form4"/>
73+
<HasResources Value="True"/>
74+
<ResourceBaseClass Value="Form"/>
75+
<UnitName Value="Unit4"/>
76+
</Unit5>
77+
<Unit6>
78+
<Filename Value="unit5.pas"/>
79+
<IsPartOfProject Value="True"/>
80+
<ComponentName Value="Form5"/>
81+
<HasResources Value="True"/>
82+
<ResourceBaseClass Value="Form"/>
83+
<UnitName Value="Unit5"/>
84+
</Unit6>
85+
<Unit7>
86+
<Filename Value="unit6.pas"/>
87+
<IsPartOfProject Value="True"/>
88+
<ComponentName Value="Form6"/>
89+
<HasResources Value="True"/>
90+
<ResourceBaseClass Value="Form"/>
91+
<UnitName Value="Unit6"/>
92+
</Unit7>
93+
<Unit8>
94+
<Filename Value="unit7.pas"/>
95+
<IsPartOfProject Value="True"/>
96+
<ComponentName Value="Form7"/>
97+
<HasResources Value="True"/>
98+
<ResourceBaseClass Value="Form"/>
99+
<UnitName Value="Unit7"/>
100+
</Unit8>
101+
<Unit9>
102+
<Filename Value="unit8.pas"/>
103+
<IsPartOfProject Value="True"/>
104+
<ComponentName Value="Form8"/>
105+
<ResourceBaseClass Value="Form"/>
106+
<UnitName Value="Unit8"/>
107+
</Unit9>
108+
<Unit10>
109+
<Filename Value="../_0_Lazarus_Komponenten/Lazarus_Komponents/lazcomment/ulazcomment.pas"/>
110+
<IsPartOfProject Value="True"/>
111+
</Unit10>
112+
<Unit11>
113+
<Filename Value="../Sample/DatenSteuerung/uuart_deprecated.pas"/>
114+
<IsPartOfProject Value="True"/>
115+
</Unit11>
116+
<Unit12>
117+
<Filename Value="uuart.inc"/>
118+
<IsPartOfProject Value="True"/>
119+
</Unit12>
120+
</Units>
121+
</ProjectOptions>
122+
<CompilerOptions>
123+
<Version Value="11"/>
124+
<Target>
125+
<Filename Value="KLab"/>
126+
</Target>
127+
<SearchPaths>
128+
<IncludeFiles Value="$(ProjOutDir)"/>
129+
<OtherUnitFiles Value="../Sample/DatenSteuerung;../Sample/synapse;../_0_Lazarus_Komponenten/Lazarus_Komponents/lazcomment"/>
130+
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
131+
</SearchPaths>
132+
<Linking>
133+
<Options>
134+
<Win32>
135+
<GraphicApplication Value="True"/>
136+
</Win32>
137+
</Options>
138+
</Linking>
139+
</CompilerOptions>
140+
<Debugging>
141+
<Exceptions Count="4">
142+
<Item1>
143+
<Name Value="EAbort"/>
144+
</Item1>
145+
<Item2>
146+
<Name Value="ECodetoolError"/>
147+
</Item2>
148+
<Item3>
149+
<Name Value="EFOpenError"/>
150+
</Item3>
151+
<Item4>
152+
<Name Value="RunError(203)"/>
153+
</Item4>
154+
</Exceptions>
155+
</Debugging>
156+
</CONFIG>

miniprojects/KLab/KLab.lpr

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
(******************************************************************************)
2+
(* *)
3+
(* Author : Uwe Schächterle (Corpsman) *)
4+
(* *)
5+
(* This file is part of KLab *)
6+
(* *)
7+
(* See the file license.md, located under: *)
8+
(* https://github.com/PascalCorpsman/Software_Licenses/blob/main/license.md *)
9+
(* for details about the license. *)
10+
(* *)
11+
(* It is not allowed to change or remove this text from any *)
12+
(* source file of the project. *)
13+
(* *)
14+
(******************************************************************************)
15+
Program KLab;
16+
17+
{$MODE objfpc}{$H+}
18+
19+
Uses
20+
//{$IFDEF UNIX}
21+
// cthreads, // for cn_monitor
22+
//{$ENDIF}
23+
Interfaces, // this includes the LCL widgetset
24+
Forms, Unit1, Unit2, Unit3, Unit4, Unit5, Unit6,
25+
Unit7, Unit8;
26+
27+
{$R *.res}
28+
29+
Begin
30+
RequireDerivedFormResource := True;
31+
Application.Initialize;
32+
Application.CreateForm(TForm1, Form1);
33+
Application.CreateForm(TForm2, Form2);
34+
Application.CreateForm(TForm3, Form3);
35+
Application.CreateForm(TForm4, Form4);
36+
Application.CreateForm(TForm6, Form6);
37+
Application.CreateForm(TForm7, Form7);
38+
Application.CreateForm(TForm8, Form8);
39+
Application.Run;
40+
End.
41+

miniprojects/KLab/Readme.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# KLab
2+
3+
IDE for Atmel(r) AVR(c) microcontrollers projects inspired by [KontrollerLab](https://sourceforge.net/projects/kontrollerlab/)
4+
5+
![](preview.png)
6+
7+
Features:
8+
- read / write Fuse Bits
9+
- program hex files
10+
- Erase µ-controller
11+
- Verify fex files
12+
- cleanup temporary files from harddisc
13+
- two separate source windows
14+
- Project manager
15+
- debug terminal
16+
- show compiler warnings during compile
17+
- show ram statistics of µ-controller
18+
- support searchpaths
19+
- compile with one click (gear button)
20+
- compile and flash with one click (rocket button)
21+
- Support of new cpu's by ini files (see subfolder cpu for more informations)
22+
- custom codehighlighting
23+
24+
Dependencies:
25+
- Synapse ( http://www.ararat.cz/synapse/doku.php/download )
26+
27+
## What neets to be done to use the IDE
28+
- AVR-GCC Toolchain
29+
- AVR-Dude
30+
- USB programmer e.g. from http://www.ulrich-radig.de

miniprojects/KLab/cpu/Readme.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## How to setup .ini files
2+
3+
At best you start with an existing .ini file and modify all parameters as needed.
4+
5+
To be able to upload a hex file, all it takes is the avrdudename name.
6+
avrdudename can be searched in this list:
7+
8+
http://www.nongnu.org/avrdude/user-manual/avrdude_4.html
9+
10+
or you could run the command "avrdude -c usbasp" / "avrdude -c avrisp" this will show a list of all supported types.
11+
12+
All the other parameters can be read out of the according datasheet of the µ-controller.
13+

miniprojects/KLab/cpu/atmega168.ini

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
[General]
2+
mmcu=atmega168
3+
maxcpu=20000000
4+
flash=16384
5+
ram=1024
6+
eeprom=512
7+
avrdudename=m168
8+
9+
[FuseHigh]
10+
Bit7=RSTDISBL
11+
Bit6=DWEN
12+
Bit5=SPIEN
13+
Bit4=WDTON
14+
Bit3=EESAVE
15+
Bit2=BODLEVEL2
16+
Bit1=BODLEVEL1
17+
Bit0=BODLEVEL0
18+
ENABLED=255
19+
20+
[FuseLow]
21+
Bit7=CLKDIV8
22+
Bit6=CKOUT
23+
Bit5=SUT1
24+
Bit4=SUT0
25+
Bit3=CKSEL3
26+
Bit2=CKSEL2
27+
Bit1=CKSEL1
28+
Bit0=CKSEL0
29+
ENABLED=255
30+
31+
[FuseExtended]
32+
Bit7=Bit 7
33+
Bit6=Bit 6
34+
Bit5=Bit 5
35+
Bit4=Bit 4
36+
Bit3=Bit 3
37+
Bit2=BOOTSZ1
38+
Bit1=BOOTSZ0
39+
Bit0=BOOTRST
40+
ENABLED=7
41+
42+
[FuseLock]
43+
Bit7=Bit 7
44+
Bit6=Bit 6
45+
Bit5=Bit 5
46+
Bit4=Bit 4
47+
Bit3=Bit 3
48+
Bit2=Bit 2
49+
Bit1=Bit 1
50+
Bit0=Bit 0
51+
ENABLED=0
52+

miniprojects/KLab/cpu/atmega32.ini

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
[General]
2+
mmcu=atmega32
3+
maxcpu=16000000
4+
flash=32768
5+
ram=2048
6+
eeprom=1024
7+
avrdudename=m32
8+
9+
[FuseHigh]
10+
Bit7=OCDEN
11+
Bit6=JTAGEN
12+
Bit5=SPIEN
13+
Bit4=CKOPT
14+
Bit3=EESAVE
15+
Bit2=BOOTSZ1
16+
Bit1=BOOTSZ0
17+
Bit0=BOOTRST
18+
ENABLED=255
19+
20+
[FuseLow]
21+
Bit7=BODLEVEL
22+
Bit6=BODEN
23+
Bit5=SUT1
24+
Bit4=SUT0
25+
Bit3=CKSEL3
26+
Bit2=CKSEL2
27+
Bit1=CKSEL1
28+
Bit0=CKSEL0
29+
ENABLED=255
30+
31+
[FuseExtended]
32+
Bit7=
33+
Bit6=
34+
Bit5=
35+
Bit4=
36+
Bit3=
37+
Bit2=
38+
Bit1=
39+
Bit0=
40+
ENABLED=0
41+
42+
[FuseLock]
43+
Bit7=
44+
Bit6=
45+
Bit5=BootLock12
46+
Bit4=BootLock11
47+
Bit3=BootLock02
48+
Bit2=BootLock01
49+
Bit1=Lock2
50+
Bit0=Lock1
51+
ENABLED=255
52+

0 commit comments

Comments
 (0)