Forum: Mikrocontroller und Digitale Elektronik Vairable wird nicht beachtet


von Parabol13337 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute ich verzweifel gerade weil ich einfahc nicht weiter komme

ich habe mit mit einem ATMEGA32 eine 30 Kanal PWM gebaut alles so gut, 
läuft auch,   nur ich bekomm es einfach nicht hin die werte der PWM 
Kanäle via Uart zu verändern. Die Uart läuft selber einwandfrei.


in der Interrupt rutine der Uart soll eine variable verändert werden das 
klappt auch soweit nur juckt das meine PWM schleife nicht sehr viel, nur 
warum?


while(1) {

if (teiler == 0) {
  teiler = 255;
  PORTA = 0x00;
}else{

// Strip 1
if (teiler == wert){PORTA |= (1<<PA6);}
if (teiler == 0){PORTA |= (1<<PA5);}
if (teiler == 100){PORTA |= (1<<PA4);}

}
teiler--;

}




also wenn ich wert in der While schleife ändern lasse klappts, aber 
nicht von der UART-Int aus.


Danke schon mal

von Karl H. (kbuchegg)


Lesenswert?

a) uint8_t wert = 0;
   da fehlt ein volatile

b) ich sehe nicht, dass du in deiner Hauptschleife mit wert
   irgendwas machst.

Edit:
Gesehen, du möchtest das erste if entsprechend ändern. Dann ist volatile 
dein Freund

http://www.mikrocontroller.net/articles/FAQ#Was_hat_es_mit_volatile_auf_sich

von Parabol13337 (Gast)


Lesenswert?

OMG und dafür hab ich jetzt 10 Stunden Rumgebastelt,

Herzlichen Dank es klappt

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.