Probleme 3 PWM mit attiny13

Gast #3127690
Lesenswert?

Hi,

ich moechte mit einem Attiny13 drei PWMs erzeugen.Ich nehme den attiny13 
aus Platzgruenden. Ich habe dafür das Program. Alllerdings leuchtet 
meine LED nur konstant ich glaube ich habe Probleme in der ISR.
Ich moechte in der ISR die Variable a mit dem Inhalt des aktuellen Array 
Elements vergleichen. Also den Inhalt des Arrayelements auf das der 
jeweilige
Pointer gerade zeigt..
Irgendwo habe ich da noch einen Fehler. Sehr ihr ihn?
Angehängte Dateien:
#3127879
Lesenswert?

Die ISR beginnst Du mit "sei()" und beendest sie mit "cli()". Abgesehen 
davon, dass man das in einer ISR weder machen muss noch machen soll 
(außer in einzelnen Ausnahmefällen, bei denen man genau weiß, was man 
tut), bewirkt das "cli()" am Ende, dass die ISR nie wieder aufgerufen 
wird.
Gast #3127935
Lesenswert?

chris schrieb:
> Meiner Erfahrung nach sollte man _delay_ms nicht im Attiny verwenden, da
> diese Funktion relativ viel Flash verbraucht.

Darueber hab ich mir auch schon Gedanken gemacht und dass _delay_ms 
nicht die beste Art zu warten is ist mir auch klar aber wisst ihr wie 
man geschickter wartet?
Gast #3127938
Lesenswert?

Edi R. schrieb:
> Die ISR beginnst Du mit "sei()" und beendest sie mit "cli()". Abgesehen
> davon, dass man das in einer ISR weder machen muss noch machen soll
> (außer in einzelnen Ausnahmefällen, bei denen man genau weiß, was man
> tut), bewirkt das "cli()" am Ende, dass die ISR nie wieder aufgerufen
> wird.

Das hab ich nich bedacht danke
#3128053
Lesenswert?

@ tobi88 (Gast)

>    main.c (5,1 KB, 44 Downloads) | Codeansicht

Aua.

>ich moechte mit einem Attiny13 drei PWMs erzeugen.

Das macht man anders, siehe Soft-PWM.

>Irgendwo habe ich da noch einen Fehler. Sehr ihr ihn?

Du hast vergessen, ein C-Buch zu lesen. Fang mal mit Arrays und deren 
Initialisierung an. Ein Timer hilft bei dem Vorhaben ungemein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren