Wegen Atmelprogrammierung
AN ALLE:
Es gibt bei www.elektro-nix.de günstige Pic's und Atmels
Z.B. den ATtiny15L-IPI für 1,99€
@Harry
Ich weiß natürlich nicht was du bezahlst.
Ich z.B. bin hier drauf gestoßen, weil ich bei EBay einfach mal nach den 2313'er suchte und da 2Stk. für 3 € gekriegt habe, OBWOHL die bei der gleichen Firma (also elektro-nix) für 2,04€ je. Stk. zu kaufen sind.
Versand war bei mir bloß 2 €.
Also wer interessiert ist kann ja mal reinschauen.
Es gibt bei www.elektro-nix.de günstige Pic's und Atmels
Z.B. den ATtiny15L-IPI für 1,99€
@Harry
Ich weiß natürlich nicht was du bezahlst.
Ich z.B. bin hier drauf gestoßen, weil ich bei EBay einfach mal nach den 2313'er suchte und da 2Stk. für 3 € gekriegt habe, OBWOHL die bei der gleichen Firma (also elektro-nix) für 2,04€ je. Stk. zu kaufen sind.
Versand war bei mir bloß 2 €.
Also wer interessiert ist kann ja mal reinschauen.
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
1. Oben links: Project/new -> ein neues Projekt anlegen, Typ AVR AssemblerIch habe das AVR Studio 3.56. Dort habe ich den Code reinkopiert.
Was muss ich denn tun, um den Code im AVR Studio 3.56 zu testen
2. Project/add File -> Datei einbinden
3. F7 startet Assembler
4. Strg+F7 startet Assembler und Simulator
Kann sein, dass diese Beschreibung nicht 100% vollständig ist, aber Ihr könnt ja ein wenig probieren.
Viele Grüsse
Harry
PS: Wäre schön, wenn Ihr jetzt beschreibt, wie Ihr es gemacht habt, was dabei nicht klappt und wie man es richtig macht. Schliesslich soll doch jeder von jedem etwas lernen.
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
Das Übersetzen klappt, schön!
Jetzt kommen ein paar Infos zum Simulieren. Gestartet wird das mit Strg+F7. Dann gibt es ein paar Icons, die man mit dem Mauszeiger nur berühren braucht, um deren Bedeutung zu erfahren.
Ausserdem sind einige Fenster (unter "View") interessant. Dort kann man sich Variablen ("Watch") anzeigen lassen, Laufzeiten kann man messen ("Prozessor"), die Portpins betrachten ("New I/O view").
Probiert einfach mal, ändert Werte für Variablen usw. Man kann mit dem Simulator schon ganz schön spielen. Es gibt einen Einzelschrittbetrieb, oder man kann das Programm an Breakpoints stoppen lassen. Und so weiter und so fort.
Viele Grüsse
Harry
Jetzt kommen ein paar Infos zum Simulieren. Gestartet wird das mit Strg+F7. Dann gibt es ein paar Icons, die man mit dem Mauszeiger nur berühren braucht, um deren Bedeutung zu erfahren.
Ausserdem sind einige Fenster (unter "View") interessant. Dort kann man sich Variablen ("Watch") anzeigen lassen, Laufzeiten kann man messen ("Prozessor"), die Portpins betrachten ("New I/O view").
Probiert einfach mal, ändert Werte für Variablen usw. Man kann mit dem Simulator schon ganz schön spielen. Es gibt einen Einzelschrittbetrieb, oder man kann das Programm an Breakpoints stoppen lassen. Und so weiter und so fort.
Viele Grüsse
Harry
Genau das selbe wollte ich auch fragen(Wegen Simulation).
@Harry
Damit du nicht denkst, das sich keiner dafür interessiert(ausser JRaeck) oder das keiner mit macht.
Ich hatte ja vor kurzem angefangen mich mit Atmel zu beschäftigen(weißt du ja) bin auch sehr weit damit.
Da ich ja selbst auch mal was schreiben möchte und veralldingen verstehen will, was die ganzen Befehle bedeuten (die du jetzt z.B. hier gezeigt hast), lerne ich gerade die Programmierbefehle.
Also damit du nicht denkst, das keiner mitmacht.
Ich verstehe schonmal die I/O-Grundlagen(ein Anfang
) also mit Register,in,out,DDRB,ldi..., versuche aber schnellst möglich, das ich alles verstehe.
HAb auch das AVR-Studio, und das Flash/Brennprogramm von Johann Aichinger.
Wegen dem Brennprogramm: Kann man damit noch die ATtiny15L (und AT90S2313) noch beschreiben, oder muss man sich dafür schon registrieren?
Und mit was kann ich das Programm (das du z.B. geschrieben hast) also auf die Datei (z.B. hex) bringen, das man die auf den Controller machen kann? (Geht das auch mit AVR-Studio?)
@Harry
Damit du nicht denkst, das sich keiner dafür interessiert(ausser JRaeck) oder das keiner mit macht.
Ich hatte ja vor kurzem angefangen mich mit Atmel zu beschäftigen(weißt du ja) bin auch sehr weit damit.
Da ich ja selbst auch mal was schreiben möchte und veralldingen verstehen will, was die ganzen Befehle bedeuten (die du jetzt z.B. hier gezeigt hast), lerne ich gerade die Programmierbefehle.
Also damit du nicht denkst, das keiner mitmacht.
Ich verstehe schonmal die I/O-Grundlagen(ein Anfang

HAb auch das AVR-Studio, und das Flash/Brennprogramm von Johann Aichinger.
Wegen dem Brennprogramm: Kann man damit noch die ATtiny15L (und AT90S2313) noch beschreiben, oder muss man sich dafür schon registrieren?
Und mit was kann ich das Programm (das du z.B. geschrieben hast) also auf die Datei (z.B. hex) bringen, das man die auf den Controller machen kann? (Geht das auch mit AVR-Studio?)
Ich habe jetzt auch mal versucht einen Befehlscode zu schreiben, er ist sehr einfach gehalten (kann auch im Moment noch nicht mehr)
Der Controller ist hier auch ein ATtiny15L
@Harry, du kannst ihn dir mal anschauen, im Simulator funktioniert er, dann müsste es ja stimmen(hoffe ich).
Hier die ASM-Datei des Befehlscodes:
.include "tn15def.inc"
ldi r17, 0xFC
out DDRB, r17
ldi r17, 0xFC
out DDB0, r17
out DDB1, r17
ldi r17, 0xFC
out PORTB, r17
loop1: sbic PINB, 0
rjmp loop1
sbi PORTB, 4
sbi PORTB, 3
loop2: sbis PINB, 0
rjmp loop2
cbi PORTB, 4
cbi PORTB, 3
sbis PINB, 1
rjmp loop1
loop3: sbic PINB, 0
rjmp loop3
cbi PORTB, 4
cbi PORTB, 3
loop4: sbis PINB, 0
rjmp loop4
sbi PORTB, 4
sbi PORTB, 3
sbic PINB, 1
rjmp loop3
rjmp loop1
Hier ist Ende.
Die Ports sind so programmiert: PortB/pins 2-5 = Ausgänge
PortB/pin 0 = Eingang
BortB/pin 1 = Eingang
Die einzelnen Funktionen der Pins bzw. Erklärung der Funktionen:
An Pin3 und Pin4 des tiny müssen je eine Leuchtdiode mit Minus, und mit Plus nach VCC angeschlossen werden.
(Widerstand nicht vergessen!!!)
und zwei Schalter, einen an Pin1 in Ausstellung und den anderen an Pin0 auch in Ausstellung, beide müssen an +5Volt angeschlossen werden.
---------------------------------------------------------------------------
1.Abschnitt
Wenn an Pin0 (Eingang) keine Spannung = 0Volt anliegt (Schalter aus),
dann ist Schleife 1 (Loop1) schon beendet.
("sbic PINB, 0" und "rjmp loop1" = Schleife1 brechen wenn Pin0 gleich 0Volt ist,
dieser Befehl wurde gleich erfüllt)
Jetzt kommen diese Befehle:
"sbi PORTB, 4" und "sbi PORTB, 3" = Pin4 und Pin3 auf +5Volt stellen
-BEIDE LED's SIND AUS!-, denn: jetzt liegt an Pin3 und Pin4 anstatt Masse/0Volt eine Spannung von +5Volt an.
---------------------------------------------------------------------------
2.Abschnitt
Jetzt läuft das Programm zur 2. Schleife, also Schleife2, und diese läuft jetzt immer wieder durch.
(SIE WIRD NICHT BEENDET!!!)
Erst wenn am Pin0 (Eingang) eine Spannung von +5Volt anliegt (schalter auf ein/an), dann ist diese Schleife beendet.
("sbis PINB, 0" und "rjmp loop2" = Schleife2 brechen wenn Pin0 gleich +5Volt ist, also Schalter eingeschaltet wurde)
Folgende Befehle sind:
"cbi PORTB, 4" und "cbi PORTB, 3" = Pin4 und Pin3 auf 0Volt stellen
-BEIDE LED's AN!-, denn: jetzt liegt am Pin3 und Pin4 Masse/0Volt an.
Durch den Befehl "rjmp loop1" am ende von Schleife2 (loop2) wird nun wieder zur Schleife1 (loop1) zurückgesprungen.
---------------------------------------------------------------------------
3.Abschnitt
Bei Schleife1 (loop1) wieder angekommen läuft diese nun immer wieder durch.
(SIE WIRD NICHT BEENDET!!!)
Erst wenn am Pin0 (Eingang) nun wieder 0Volt anliegen (Schalter auf aus), dann ist diese Scleife beendet.
("sbic PINB, 0" und "rjmp loop1" = Schleife1 brechen wenn Pin0 (Eingang) gleich 0Volt ist,
dieser Befehl wird bei ausgeschaltetem Schalter erfüllt)
Folgende Befehle sind:
"sbi PORTB, 4" und "sbi PORTB, 3" = Pin4 und Pin3 auf +5Volt stellen
-BEIDE LED's SIND AUS!-, denn: jetzt liegt an Pin3 und Pin4 anstatt Masse/0Volt eine Spannung von +5Volt an.
.
.
Jetzt geht es wieder bei Abschnitt2 weiter, also bei: Jetzt läuft das Programm zur...,
und der erste Abschnitt wird ab jetzt weggelassen, er zählt nur am Anfang, es geht also immer von Abschnitt3 zu Abschnitt2 und wieder zu Abschnitt3 und und und.
----------------------------------------------------------------------------
4.Abschnitt
Diese Schaltung ist aufgebaut, also ob man mit einem Schalter (an Pin0)
2 Lampen/LED's (Pin3 und Pin4) einschaltet(also +5Volt) bzw. aussschaltet(also 0Volt)
Entspricht: Schalter ein = LED's ein
Schalter aus = LED's aus
----------------------------------------------------------------------------
Das ist noch nicht alles:
Mit den Befehl "sbis PINB, 1" (ausgelöst durch einschalten des Schalters an Pin1) der bei Schleife2 (vor "rjmp loop1") steht, wird der darunterstehende Befehl, nämlich "rjmp loop1" übersprungen und es geht nicht wieder zu Schleife1 (loop1) zurück sondern das Programm läuft weiter zu Schleife3 (loop3).
Loop3 und Loop4 verhalten sich wie Loop1 und Loop2.
Es läuft nun anstatt Schleife1/Loop1 und Schleife2/Loop2 so lange Schleife3/Loop3 und Schleife4/Loop4 durch, bis der Befehl "sbic PINB, 1" am Ende von Loop4 eintrifft.
(entspricht der 2. Schalter wird nun wieder ausgeschaltet)
Dann geht es wieder zu Loop1 und Loop2.
Da der 4.Abschnitt ja sinnlos wäre, wenn sich am Ablauf der einzuschaltenen LED's nichts ändern würde, sieht das ein- und ausschalten der LED's nun wie folgt aus:
Schalter ein = LED's aus
Schalter aus = LED's ein
Also verhalten sich die ersten beiden Loops (Loop1 und Loop2)
genau umgedreht zu den beiden nächsten Loops (Loop3 und Loop4)
Wer mit dieser ausführlichen Beschreibung nicht klarkommt, z.B. wegen immer wieder scrollen zum Code,
um nachzuschauen, wie das gemeint ist, der kann sich ja melden!
Dann schreibe ich hinter die einzelnen Befehle des Codes noch die Bedeutungen, da ich es aber ausfürlich machen wollte, hab ich es erst einmal so gemacht, das es auch einer versteht, der noch nicht den Befehlscode beherrscht.
Wer wagen will, den Befehlscode zu lernen der findet auf www.mikrocontroller.net (schon auf Seite 1 genannt) einen guten Start/Anfang hier rein.
P.S. für dieses Geschreibe habe ich länger gebraucht das zu formulieren als den Befehlscode zu schreiben und auszutesten
.
Der Controller ist hier auch ein ATtiny15L
@Harry, du kannst ihn dir mal anschauen, im Simulator funktioniert er, dann müsste es ja stimmen(hoffe ich).
Hier die ASM-Datei des Befehlscodes:
.include "tn15def.inc"
ldi r17, 0xFC
out DDRB, r17
ldi r17, 0xFC
out DDB0, r17
out DDB1, r17
ldi r17, 0xFC
out PORTB, r17
loop1: sbic PINB, 0
rjmp loop1
sbi PORTB, 4
sbi PORTB, 3
loop2: sbis PINB, 0
rjmp loop2
cbi PORTB, 4
cbi PORTB, 3
sbis PINB, 1
rjmp loop1
loop3: sbic PINB, 0
rjmp loop3
cbi PORTB, 4
cbi PORTB, 3
loop4: sbis PINB, 0
rjmp loop4
sbi PORTB, 4
sbi PORTB, 3
sbic PINB, 1
rjmp loop3
rjmp loop1
Hier ist Ende.
Die Ports sind so programmiert: PortB/pins 2-5 = Ausgänge
PortB/pin 0 = Eingang
BortB/pin 1 = Eingang
Die einzelnen Funktionen der Pins bzw. Erklärung der Funktionen:
An Pin3 und Pin4 des tiny müssen je eine Leuchtdiode mit Minus, und mit Plus nach VCC angeschlossen werden.
(Widerstand nicht vergessen!!!)
und zwei Schalter, einen an Pin1 in Ausstellung und den anderen an Pin0 auch in Ausstellung, beide müssen an +5Volt angeschlossen werden.
---------------------------------------------------------------------------
1.Abschnitt
Wenn an Pin0 (Eingang) keine Spannung = 0Volt anliegt (Schalter aus),
dann ist Schleife 1 (Loop1) schon beendet.
("sbic PINB, 0" und "rjmp loop1" = Schleife1 brechen wenn Pin0 gleich 0Volt ist,
dieser Befehl wurde gleich erfüllt)
Jetzt kommen diese Befehle:
"sbi PORTB, 4" und "sbi PORTB, 3" = Pin4 und Pin3 auf +5Volt stellen
-BEIDE LED's SIND AUS!-, denn: jetzt liegt an Pin3 und Pin4 anstatt Masse/0Volt eine Spannung von +5Volt an.
---------------------------------------------------------------------------
2.Abschnitt
Jetzt läuft das Programm zur 2. Schleife, also Schleife2, und diese läuft jetzt immer wieder durch.
(SIE WIRD NICHT BEENDET!!!)
Erst wenn am Pin0 (Eingang) eine Spannung von +5Volt anliegt (schalter auf ein/an), dann ist diese Schleife beendet.
("sbis PINB, 0" und "rjmp loop2" = Schleife2 brechen wenn Pin0 gleich +5Volt ist, also Schalter eingeschaltet wurde)
Folgende Befehle sind:
"cbi PORTB, 4" und "cbi PORTB, 3" = Pin4 und Pin3 auf 0Volt stellen
-BEIDE LED's AN!-, denn: jetzt liegt am Pin3 und Pin4 Masse/0Volt an.
Durch den Befehl "rjmp loop1" am ende von Schleife2 (loop2) wird nun wieder zur Schleife1 (loop1) zurückgesprungen.
---------------------------------------------------------------------------
3.Abschnitt
Bei Schleife1 (loop1) wieder angekommen läuft diese nun immer wieder durch.
(SIE WIRD NICHT BEENDET!!!)
Erst wenn am Pin0 (Eingang) nun wieder 0Volt anliegen (Schalter auf aus), dann ist diese Scleife beendet.
("sbic PINB, 0" und "rjmp loop1" = Schleife1 brechen wenn Pin0 (Eingang) gleich 0Volt ist,
dieser Befehl wird bei ausgeschaltetem Schalter erfüllt)
Folgende Befehle sind:
"sbi PORTB, 4" und "sbi PORTB, 3" = Pin4 und Pin3 auf +5Volt stellen
-BEIDE LED's SIND AUS!-, denn: jetzt liegt an Pin3 und Pin4 anstatt Masse/0Volt eine Spannung von +5Volt an.
.
.
Jetzt geht es wieder bei Abschnitt2 weiter, also bei: Jetzt läuft das Programm zur...,
und der erste Abschnitt wird ab jetzt weggelassen, er zählt nur am Anfang, es geht also immer von Abschnitt3 zu Abschnitt2 und wieder zu Abschnitt3 und und und.
----------------------------------------------------------------------------
4.Abschnitt
Diese Schaltung ist aufgebaut, also ob man mit einem Schalter (an Pin0)
2 Lampen/LED's (Pin3 und Pin4) einschaltet(also +5Volt) bzw. aussschaltet(also 0Volt)
Entspricht: Schalter ein = LED's ein
Schalter aus = LED's aus
----------------------------------------------------------------------------
Das ist noch nicht alles:
Mit den Befehl "sbis PINB, 1" (ausgelöst durch einschalten des Schalters an Pin1) der bei Schleife2 (vor "rjmp loop1") steht, wird der darunterstehende Befehl, nämlich "rjmp loop1" übersprungen und es geht nicht wieder zu Schleife1 (loop1) zurück sondern das Programm läuft weiter zu Schleife3 (loop3).
Loop3 und Loop4 verhalten sich wie Loop1 und Loop2.
Es läuft nun anstatt Schleife1/Loop1 und Schleife2/Loop2 so lange Schleife3/Loop3 und Schleife4/Loop4 durch, bis der Befehl "sbic PINB, 1" am Ende von Loop4 eintrifft.
(entspricht der 2. Schalter wird nun wieder ausgeschaltet)
Dann geht es wieder zu Loop1 und Loop2.
Da der 4.Abschnitt ja sinnlos wäre, wenn sich am Ablauf der einzuschaltenen LED's nichts ändern würde, sieht das ein- und ausschalten der LED's nun wie folgt aus:
Schalter ein = LED's aus
Schalter aus = LED's ein
Also verhalten sich die ersten beiden Loops (Loop1 und Loop2)
genau umgedreht zu den beiden nächsten Loops (Loop3 und Loop4)
Wer mit dieser ausführlichen Beschreibung nicht klarkommt, z.B. wegen immer wieder scrollen zum Code,
um nachzuschauen, wie das gemeint ist, der kann sich ja melden!
Dann schreibe ich hinter die einzelnen Befehle des Codes noch die Bedeutungen, da ich es aber ausfürlich machen wollte, hab ich es erst einmal so gemacht, das es auch einer versteht, der noch nicht den Befehlscode beherrscht.
Wer wagen will, den Befehlscode zu lernen der findet auf www.mikrocontroller.net (schon auf Seite 1 genannt) einen guten Start/Anfang hier rein.
P.S. für dieses Geschreibe habe ich länger gebraucht das zu formulieren als den Befehlscode zu schreiben und auszutesten

Dieses Thema sollte nicht vergessen werden!
@Harry, du scheinst ja wieder da zu sein, kannst du dir denn demnächst mal den Code oben anschauen, ich hab auch noch ne Frage, und zwar:
Wie kann ich denn aus dem ASM-Code eine hex-Datei bzw. eine Datei machen, die ich dann auch brennen kann?
Gruß
Patrick
@Harry, du scheinst ja wieder da zu sein, kannst du dir denn demnächst mal den Code oben anschauen, ich hab auch noch ne Frage, und zwar:
Wie kann ich denn aus dem ASM-Code eine hex-Datei bzw. eine Datei machen, die ich dann auch brennen kann?
Gruß
Patrick
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
Project/Project Settings einstellen:
Output File Format:
Intel Intellec
Assembler location:
c:\...dein Pfad...\AVR Studio\avrasm32.exe
Assebler entry file:
c:\ ... Dein Pfad...\ EDIT: hier muss Dein Dateiname stehen
Jetzt F7 drücken, und es müsste ein hex-File da stehen.
Viele Grüsse
Harry
Output File Format:
Intel Intellec
Assembler location:
c:\...dein Pfad...\AVR Studio\avrasm32.exe
Assebler entry file:
c:\ ... Dein Pfad...\ EDIT: hier muss Dein Dateiname stehen
Jetzt F7 drücken, und es müsste ein hex-File da stehen.
Viele Grüsse
Harry
Zuletzt geändert von Harry am Mittwoch 17. März 2004, 07:48, insgesamt 2-mal geändert.
Atmel verriegeln
Hi,
kann mir einer sagen ob der AT90S2313 verriegelt werden kann so das er nicht ausgelesen werden kann . Das hex File meine ich bei der Sache. Mir hat einer erzählt das durch setzen zweier Stopbits dies dann nicht mehr möglich ist ?
Gruß Ferry
kann mir einer sagen ob der AT90S2313 verriegelt werden kann so das er nicht ausgelesen werden kann . Das hex File meine ich bei der Sache. Mir hat einer erzählt das durch setzen zweier Stopbits dies dann nicht mehr möglich ist ?
Gruß Ferry
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
Re: Atmel verriegeln
Ich setze bei meinen Tinys die zwei Lockbits nach dem Flashen des hex-Files. Ob man die Lockbits irgendwie in den hex-File selbst bekommt, weiss ich nicht.Ferry hat geschrieben:Hi,
kann mir einer sagen ob der AT90S2313 verriegelt werden kann so das er nicht ausgelesen werden kann . Das hex File meine ich bei der Sache. Mir hat einer erzählt das durch setzen zweier Stopbits dies dann nicht mehr möglich ist ?
Gruß Ferry
Viele Grüsse
Harry
Ich bins nochmal
@Harry
Ich hab mir das jetzt eben oben von dir nochmal durchgelesen, du hast da geschrieben "Toll Herzlichen Glückwunsch", meintest du damit, das die Progrmmierung so stimmt oder das ich überhaupt etwas geschrieben habe bzw. es verstanden habe?
Wenn du damit meintest, das das so funktionieren würde, dan erübrigt sich die Frage von eben ja.
Gruß
Patrick
@Harry
Ich hab mir das jetzt eben oben von dir nochmal durchgelesen, du hast da geschrieben "Toll Herzlichen Glückwunsch", meintest du damit, das die Progrmmierung so stimmt oder das ich überhaupt etwas geschrieben habe bzw. es verstanden habe?
Wenn du damit meintest, das das so funktionieren würde, dan erübrigt sich die Frage von eben ja.
Gruß
Patrick
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
Moin Patrick,
mit "Glückwunsch" meinte ich Deine Leistung, was Du bei der Programmierung schon auf die Beine gestellt hast. Testen konnte ich das Programm nicht, aber ich möchte es ehrlich gesagt auch nicht tun. Dafür fehlt mir die Zeit. Ich denke, das Du schon weit gekommen bist, und auch noch das Testen schaffst.
Die Funktion der Lockbits steht im Datenblatt. "Hausaufgabe" für Dich: finde die Funktion heraus und schreibe sie hier nieder, dann haben alle etwas davon.
Viele Grüsse
Harry
mit "Glückwunsch" meinte ich Deine Leistung, was Du bei der Programmierung schon auf die Beine gestellt hast. Testen konnte ich das Programm nicht, aber ich möchte es ehrlich gesagt auch nicht tun. Dafür fehlt mir die Zeit. Ich denke, das Du schon weit gekommen bist, und auch noch das Testen schaffst.
Die Funktion der Lockbits steht im Datenblatt. "Hausaufgabe" für Dich: finde die Funktion heraus und schreibe sie hier nieder, dann haben alle etwas davon.
Viele Grüsse
Harry
Hallo Harry,
ich bin neu hier im Forum, und habe gleich mal deinen Quellcode getestet. Dabei ist mir aufgefallen daß die Variable CntBlink2 überhaupt nicht verwendet wird.
Auf diesen Code hab ich aufgebaut und gleich noch einen Frontblitzer mit eingebaut. Eine Frage bleibt nun offen. Wie werte ich den Empfängerimpuls aus um die schönen Blinkfunktionen auch ein- und ausschalten zu können?
Viele Grüße
Klaus
ich bin neu hier im Forum, und habe gleich mal deinen Quellcode getestet. Dabei ist mir aufgefallen daß die Variable CntBlink2 überhaupt nicht verwendet wird.
Auf diesen Code hab ich aufgebaut und gleich noch einen Frontblitzer mit eingebaut. Eine Frage bleibt nun offen. Wie werte ich den Empfängerimpuls aus um die schönen Blinkfunktionen auch ein- und ausschalten zu können?
Viele Grüße
Klaus
- Harry
- Forumane
- Beiträge: 2912
- Registriert: Dienstag 4. Februar 2003, 12:27
- Wohnort: Mache gern Urlaub an der NordOstsee
- Kontaktdaten:
Am einfachsten mit einem Interrupt. Wenn der Impuls kommt, wird die Interruptroutine aufgerufen. Diese Routine durchläuft solange eine Schleife, wie der Impuls anliegt und zählt in der Zeit einen Counter hoch.Anonymous hat geschrieben:Wie werte ich den Empfängerimpuls aus um die schönen Blinkfunktionen auch ein- und ausschalten zu können?
Nach dem Impulsende wird der Wert des Counters ausgewertet.
In der Interruptroutine sollte man das Hochzählen des Counters etwas ausbremsen, vielleicht durch in par NOP's. Dann erspart man sich, dass er grösser als 0xFF wird und die damit verbundene Auswertung einer 2 Byte Variablen.
Viele Grüsse
Harry
PS:
@Patrick: mit den Lockbits kannst Du verhindern, dass das Programm aus dem Prozessor ausgelesen werden kann. Also so eine Art Kopierschutz.