Forum: Mikrocontroller und Digitale Elektronik Probleme 3 PWM mit attiny13


von tobi88 (Gast)


Angehängte Dateien:

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?

von Fallobst (Gast)


Lesenswert?

Dein Array ist 255 Byte groß. Jetzt überleg mal wieviel Byte Ram dein 
Tiny13 hat. Und da das Array konstant ist, sollte man es sowieso in den 
Flash packen.

von chris (Gast)


Lesenswert?

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

von Edi R. (edi_r)


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.

von tobi88 (Gast)


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?

von tobi88 (Gast)


Lesenswert?

HabwFallobst schrieb:
> Dein Array ist 255 Byte groß. Jetzt überleg mal wieviel Byte Ram dein
> Tiny13 hat. Und da das Array konstant ist, sollte man es sowieso in den
> Flash packen.

Stimmt hast recht.. Dass mach.ich.mit dem include pgmspace.h oder?

von tobi88 (Gast)


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

von tobi88 (Gast)


Lesenswert?

aber die nutzung der pointer ist sowit in ordnung=?

von Fallobst (Gast)


Lesenswert?

tobi88 schrieb:
> Stimmt hast recht.. Dass mach.ich.mit dem include pgmspace.h oder?

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29

tobi88 schrieb:
>       aber die nutzung der pointer ist sowit in ordnung=?

Ja, das sieht auf den ersten Blick in Ordnung aus.

von Falk B. (falk)


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.

von tobi88 (Gast)


Lesenswert?

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

der Timer habe ich in der Main?

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.