Atmega 328P Software PWM

Gast #1392402
Lesenswert?

boolean currentState;

ISR(TIMER1_OVF_vect){
    currentState = !currentState;
    PORTD = currentState<<7;  //Toggelt PIN 7
}

void setup(void) {
  currentState = LOW;
//**********Timer1***********************

TCCR1A = 0<<COM1A1 | 0<<COM1A0 | 0<<COM1B1 | 0<<COM1B0 | 0<<WGM11 | 
0<<WGM10; //Setzt Timer1 auf NormalOperationMode
TCCR1B = 0<<ICNC1 | 0<<ICES1 | 0<<WGM13 | 0<<WGM12 | 0<<CS12 | 0<<CS11 | 
1<<CS10;  //Prescaler auf x1 sonst alles auf Normal
TCCR1C = 0;  //Keine Advanced-Einstellungen
TIMSK1 = 1<<TOIE1;  //Interrupt Enable für Timer 1
//***************************************
}

void loop(void) {
}

Das ganze ist mit der Arduino-IDE geschrieben.
Timer1 ist ein 16bit Counter. Atmega328P läuft mit 16MHZ. => Pro Sek. 
ca. 244 Overflows.
Mein Problem ist jetzt:
Wenn ich mein Messgerät (Voltcraft VC140) dranhänge, dann seh ich keine 
feste Spannung. Er zählt hoch und zwar etwa 10mV pro Sek. aber das recht 
kontinuierlich. Allerdings geht er auch tw. kurz wieder runter. Die 
grobe Richtung ist aber nach oben.

Woran liegt das? Was mach ich falsch?

gruß und danke
Gast #1392941
Lesenswert?

Es stehen alle Pins auf OUTPUT per default.
Sonst dürfte ich ja auch gar nichts sehen am Messgerät, oder?

Es ist außerdem so: Wenn ich den Prescaler geeignet wähle, toggelt PIN7 
einmal in 4 Sekunden. Das kann ich auch gut mit meinem Messgerät 
nachvollziehen.

Kann es sein, dass es am Messgerät liegt. D.h., dass die Freq. "zu 
niedrig" ist für das Messgerät.

Mit "HardwarePWM" zeigt es ja wie gesagt den richtigen Wert an...

Danke trotzdem für die Hilfe
#1393066
Lesenswert?

Wieso schaust du nicht einfach ins Datenblatt?
Ich schätze mal, dass beim Atmega328P die Pins standardmäßig auch auf 
Input sind (High-Z).
Das was du misst wird die Spannung sein, die durch den getoggelten 
Pull-Up anliegt.
Ein Voltmeter ist kein geeignetes Messgerät für Signale. Hast du keinen 
Zugang zu einem Oszi? Selbst dort bleibt aber ein versehentlicher Input 
statt Output unbemerkt, da das Oszi einen hochohmigen Eingang hat.

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