so moin moin erstmal :D hab da so ein problem: habe seit einigen tagen das "micrcontrollerlernpaket" von franzis... bin da auch fleißig am lesen und machen aber bei mir kommen so langsam zweifel auf... ich möchte eine led mithilfe von schleifen und prescaler eine blinkdauer von etwa einer sek erzielen...das funktioniert theoretisch auch... nunja aber paraktisch nicht! habe schon diverse möglichkeiten durch wie ich pb3 anschalte ne sek anlasse und dann wider aus mache... aber es funktioniert alles nur wenn ich es simuliere (avr studio4) im anhang is eine der möglichkeiten...so habe ich mir das vorgestellt bin für anregungen aller art offen ;) bin schon total verzweifel und hoffe auf schnelle hilfe wie gesagt das prog funktioniert bei mir wenn ich es simuliere ..ein durchlauf (aun-aus) dauert ca 2s....aber wenn ich es aufspiele passiert nix...diverse testschaltungen aus dem "lernpaket" habe ich auch aufgespielt... die funktionieren teilweise ^^ ich hab keine ahnung wo hier der fehler liegt..(die übersichtlichkeit sinkt proportional zum frust.. hab mir da nich mehr soo viel mühe gegeben...)
; last_try,.. ne da kommen noch ein paar xD ; mal wida der versuch ne led zum blinken zu bringen ;) .include "tn13def.inc" .def count0 = r16 .def count1 = r22 .def count2 = r18 .def count3 = r19 .def count4 = r20 .def count5 = r21 ;prescale ldi count0 , 5 out tccr0b , count0 rjmp start start: ldi count1 , 235 ldi count2 , 155 ldi count3 , 20 ldi count5 , 52 sbi portb , 0 ; AN loop3: loop1: ldi count0 , 255 loop0: dec count0 brne loop0 dec count1 brne loop1 dec count3 brne loop3 cbi portb , 0 ; AUS loop6: loop5: ldi count4 , 20 loop4: dec count4 brne loop4 dec count5 brne loop5 dec count0 brne loop6 rjmp start
Hi Port auf Ausgang setzen! > ;prescale > ldi count0 , 5 > out tccr0b , count0 Hat keine Funktion: MfG Spess
Hallo, was macht oder soll diese Passage machen? ;prescale ldi count0 , 5 out tccr0b , count0 Ansonsten: wenn die LED leuchten soll, sollte man den Portpin auch als Ausgang schalten. z.B. mit sbi ddrb,0 nach Start: bevor man versucht, L oder H auf den Ausgang zu bekommen. PS: da war doch spess53 (Gast) schon wieder schneller... ;-))) Gruß aus Berlin Michael
oh man geht das hier schnell :D ja da stimme ich euch zu man muss den laut euch und buch ddrb und portb setzen... wenn ich aber "sbi ddrb, 3" sage dann setzt er nachdem er den 2. register der schleifen geladen hat pinb, 3 ... also macht es zu einem ausgang soweit ichs verstanden hab.. das darf ja auch nich sein dann leuchtet nix, wenn ich ddrb, 3 weglasse macht er pinb, 3 nich an ich vertsehs nich... also das bezieht sich auf die simulation ..nich auf die praxis ^^
Hallo c0sta, du setzt einen Prescale für den Timer verwendest diesen aberv nicht. Dein Programm startet mit dieser Aktion, den Jump der auf diesen Sprungvektor gehört hast du verschoben. Du schreibst von PB3, setzt/löscht jedoch PB0 und da PB0 nicht als Ausgang definiert ist schaltest du damit nur den PullUp. Bei deinen Schleifen fehlen teilweise die Nachladewerte. Ich nehme an, daß ein teil der Fehler auf Frust beruht. Außerdem ist aller Anfang schwer. Hier gibt es einige gute Hilfestellungen, auch deinen Sekundenblinker: http://www.avr-asm-tutorial.net/avr_de/index.html avr
Hi
>also das bezieht sich auf die simulation ..nich auf die praxis ^^
Nein. Du kannst PortB,0 setzen (Real und in der Simulation), aber wenn
es nicht auf Ausgang gesetzt ist, kommt nichts an. Wenn man bei einem
Eingang PortX,y setzt, wird der interne Pull-Up-Widerstand
eingeschaltet. Bei einem Ausgang wird das Portpin gesetzt.
MfG Spess
Okay vielen dank :D werde mich erst noch mal gründlich informieren bevor ich alles hinwerfe...ja aller anfang is schwer ;D ... aber ich gebs nich auf finds klasse das es hier so viele hilfsbereite menschen gibt :D
ach ja :D ich mach mir n bier auf :D ; last_try,.. ne da kommen noch ein paar xD ; mal wida der versuch ne led zum blinken zu bringen ;) .include "tn13def.inc" ; aTtiny13 .def loop0 = r20 .def loop1 = r21 .def loop2 = r22 .def loop3 = r23 .def loop4 = r24 .def loop5 = r25 rjmp start start: sbi ddrb , 4 sbi portb , 4 ; AN ldi loop4 , 7 schleife4: ldi loop2 , 255 schleife2: ldi loop0 , 255 schleife0: dec loop0 brne schleife0 dec loop2 brne schleife2 dec loop4 brne schleife4 cbi portb , 4 ; AUS ldi loop5 , 7 schleife5: ldi loop3 , 255 schleife3: ldi loop1 , 255 schleife1: dec loop1 brne schleife1 dec loop3 brne schleife3 dec loop5 brne schleife5 rjmp start
Hi >ach ja :D >ich mach mir n bier auf :D Und wie soll man das jetzt verstehen? MfG Spess
ach das bier hab ich mir aufgemacht weil ichs mir vedient hab :D ... sooo hab das ganze jetz noch mal mit timer und counter und n paar schleifen gemacht :D is recht konfus geworden aber funzt^^ hat ne blinkdauer von etwa 1,5 - keine ahnung..viel :D ;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.