www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM IM SRAM MEGA8515


Autor: Kay B. (newbie)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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>

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kay B. (newbie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Magnus Müller (Gast)
Datum:

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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kay B. (newbie)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Kay B. (newbie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
kann mir denn keiner ein kleines stück weiterhelfen.

dnke

mfg kay

Autor: Kay B. (newbie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.