Forum: Mikrocontroller und Digitale Elektronik Mega328p AVR Studio


von Marc (Gast)


Lesenswert?

Hallo,
Ich habe ein Arduino uno Board welches ich mit dem STK 500 via ISP 
verbunden habe. Hab alle einstellungen für Atmega 328p vorgenommen.
Da ich in C nicht fit bin versuchte ich PWM beispiele einzuspielen.
Allerdings bekomme ich es nicht hin auf ausgang PB5 eine LED zu dimmen.
Also entweder liegt das am code oder ist die STK 500 nicht kompatibel 
mit dem ATMEGA 328p.
Gruß Marc

von Krapao (Gast)


Lesenswert?

Ersteres ist wahrscheinlicher.

von Marc (Gast)


Lesenswert?

Ist es möglich das einer von euch mir mal einen Code gibt den ich 
probieren kann. Will einfach nur PB5 auf 50% haben.
Hab keine ahnung warum es nicht geht.

von Krapao (Gast)


Lesenswert?

1
#include <avr/io.h>
2
int main(void)
3
{
4
  DDRB = 1<<PB5; // PB5 Ausgang
5
  while(1)
6
  {
7
    PORTB ^= 1<<PB5; // 50% an + 50% aus
8
  }
9
}

von Marc (Gast)


Lesenswert?

Danke das funktioniert jetzt mal habe am ausgang 2,5 Volt
Kann ich die größe auch in einer zahl von 0-255 angeben.

von Krapao (Gast)


Lesenswert?

Dann musst du eine komplexere Software als oben (Frequenz durch FCPU und 
die Anzahl der Befehle in der while-Schleife bestimmt; Duty-Cycle fest 
50% durch das Toggeln mit XOR ^ => Extreme CPU-Last!) verwenden.

Im Artikel Soft-PWM sind die Grundlagen erklärt und im Artikel 
LED-Fading ist u.a. eine 16-Bit PWM with 256 different settings 
beschrieben.

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.