Forum: Mikrocontroller und Digitale Elektronik PWM IM SRAM MEGA8515


von Kay B. (newbie)


Angehängte Dateien:

Lesenswert?

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

von Magnus Müller (Gast)


Lesenswert?

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>

von Uwe (Gast)


Lesenswert?

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

von Kay B. (newbie)


Lesenswert?

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

von Magnus Müller (Gast)


Lesenswert?

Hast du schon mal versucht, das Gestrüpp durch den Simulator zu ziehen?

von Magnus Müller (Gast)


Lesenswert?

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

von Kay B. (newbie)


Angehängte Dateien:

Lesenswert?

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

von Kay B. (newbie)


Lesenswert?

hallo,
kann mir denn keiner ein kleines stück weiterhelfen.

dnke

mfg kay

von Kay B. (newbie)


Lesenswert?

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

von Magnus Müller (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.