hallo, mal ne kurze frage; habe hier eine softpwm 8x mit 4tastern 2taster kanal wählen die anderen beiden taster sind zum dimmen bekomme das nicht hin den pwm kanal auzuwählen und diesen zu dimmen, vielleicht könnt mir jemand weiterhelfen MFG KAY
Und was hat das jetzt mit dem im Titel genannten SRAM zu tun? > bekomme das nicht hin den pwm kanal auzuwählen und diesen zu dimmen, > vielleicht könnt mir jemand weiterhelfen An welcher Stelle hakt es denn? Ich denke, dass die wenigsten Forenmitglieder Lust haben, ein 10KB langes Assemblerlisting nach einem Fehler zu durchsuchen, welcher noch nicht einmal näher beschrieben wurde. Gruß, Magnetus P.S.: ich werde dir bei dem Assemblerprogramm nicht helfen können, da ich mich damit noch nicht beschäftigt habe <selbstoutentu>
Hi! Dein Prog ist planlos oder ich bin zu doof es zu verstehen. >;Kopie des PWM-Wertes des aktuellen Kanals nach WL holen >;(wird für dimm und EEP gebraucht): > clr zh ;Pointer auf Sollwert des aktuellen > STS kanal,ZL ;Kanals (Kanal als Index auf Array) > ld wL,z ;Kopie des PWM-Wertes des akt. Kanals holen Kannst du zb. mal erklären was du da machen willst? Ich sehe nicht das ZL irgendwo bearbeitet wird. MFG Uwe
hallo,
vielleich ist der der titel nicht passend gewählt?
also, das problem ist, wie ich den pwm-kanal auswähle und diesen dann
dimmen kann,daran hapert es.
tasten: ;UP, fragt entprellte Tasten ab
;zuerst die Kanaltasten:
sbrc tfl,chanplus ;RCALL DISPLAYON ;Kanal-Plus-Taste betätigt?
- nein...
lds wh,KANAL ;Minute aus SRAM holen
inc wh ;erhöhen
; sts KANAL,wh ;erstmal zurück ins SRAM
;cpi wh,7 ;Überlauf?
sbrc tfl,chanminus ;RCALL DISPLAYON ;Kanal-Minus-Taste betätigt?
- nein...
lds wh,KANAL
dec wh ;erhöhen
sts KANAL,wh ;erstmal zurück ins SRAM
cpi wh,7 ;Überlauf?
;Kopie des PWM-Wertes des aktuellen Kanals nach WL holen
;(wird für dimm und EEP gebraucht):
clr yh ;Pointer auf Sollwert des aktuellen
STS kanal,yL ;Aktueller Kanal zu5rück ins sram
ld wL,y+ ;Kopie des PWM-Wertes des akt. Kanals holen
;jetzt die Dimmtasten prüfen:
andi tfl,dimtast ;alle Tasten außer den Dimmtasten rücksetzen
brne dimm ;war eine Dimmtaste betätigt? - ja...
tasten_e: ;Ende des UP
st z,wl ;Sollwert ins Array zurückschreiben
ret ;nein, zurück...
dimm: ;ändert Sollwert des aktiven Kanals
sbrs tfl,dimplus ;Taste Dimm+? - ja...
rjmp dimm1 ;nein, weiter...
lds wl,kanal ;Kanalnummer holen
;Dimplus-Taste wurde betätigt
ldi yl,low(Sollwerte)
ldi yh,high(Sollwerte)
lds kanal ;hole den kanal aus dem sram der zuvor mit
;mit dem kanaltasten ausgewählt wurde
;und zurück ins sram geschrieben wurde
subi wl,-step ;ja, Sollwert vergrößern
cpi wl,pwu ;PWM-Zählumfang überschritten?
sts Sollwerte,WL ;;sollwert zurück ins sram
brcs dimm1 ;nein...
ldi wl,pwu ;ja, auf PWM-Zählumfang begrenzen
dimm1:
sbrs tfl,dimminus ;Taste Dimm-? - ja...
rjmp dimm2 ;nein, weiter...
;Dimminus-Taste wurde betätigt
lds kanal ;hole den kanal aus dem sram der zuvor mit
;mit dem kanaltasten ausgewählt wurde
;und zurück ins sram geschrieben wurde
subi wl,-step ;ja, Sollwert vergrößern
ldi yl,low(Sollwerte)
ldi yh,high(Sollwerte)
subi WL,step ;ja, Sollwert vermindern
sts Sollwerte,WL ;sollwert zurück ins sram
brcc dimm2 ;Unterlauf? nein...
; clr wl ;ja, auf 0 setzen
dimm2:
cbr tfl,dimtast ;Dimmtasten zurücksetzen (Job ist ja
erledigt)
rjmp tasten_e ;fertig...
vielleicht könnt mir da einer von euch weiterhelfen
danke
mfg kay
So... Wie gesagt: ich hatte mich bis vorhin noch nicht mit Assemblerprogrammierung auf AVRs auseinandergesetzt. Aber nachdem ich (für dich) das Programm durch den Simulator gezogen habe, fällt mir auf, dass die Auswertung der Tastenflags durch den Tim0_OVF-Handler unterbrochen wird (was in diesem Falle vorerst nicht weiter schlimm ist). Innerhalb des Handlers (und der darin aufgerufenen Routinen) werden allerdings die Inhalte von Registern verändert, ohne diese vorher explizit gesichert zu haben. Gruß, Magnetus
hallo , hab nochmal den code angehängt. so das problem ist wie ich in der tasten routine den kanal zb.kanal1 auswähle und den ausgewählten kanal1 dann dimme mit dimminus oder dimplus, da steige ich nich so ganz durch. vielleicht könnte da noch mal einer drüberschauen. danke Gruß, Kay
hallo, danke für die hilfe war zwar nicht sehr hilfreich aber habs trotzdem hinbekommen hat zwar gedauert. ich finds zwar bischen schade das wenn mann nicht so viel Ahnung hat gleich runtergemacht wird, das forum ist ja dazu da sich zu helfen!!!!!!, so das wollte ich mal loswerden. ES SOLLTE SOLTE NICHT BÖSARTIG GEMEINT SEIN. SO SCHÖNES FEST UNF NEN GUTEN RUTSCH
Kay B. wrote: > hallo, > danke für die hilfe war zwar nicht sehr hilfreich aber habs trotzdem > hinbekommen hat zwar gedauert. Und wo lag der Fehler nun? > ich finds zwar bischen schade das wenn mann nicht so viel Ahnung hat > gleich runtergemacht wird, das forum ist ja dazu da sich zu > helfen!!!!!!, Ich hab ja auch versucht zu helfen (obwohl ich mich wie gesagt mit Assembler noch nicht auseinander gesetzt hatte). Du solltest auch nicht gleich alles so negativ sehen. Kritik ist auch was positives. > so das wollte ich mal loswerden. > > ES SOLLTE SOLTE NICHT BÖSARTIG GEMEINT SEIN. Kein Problem ;) > SO SCHÖNES FEST UNF NEN GUTEN RUTSCH Hmmmm... ein bischen früh, aber trotzdem danke ;) Gruß, Magnetus
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.