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
Übrigens ist die Spannung konstant, wenn ich analogWrite() benutze. Das ist quasi Hardware-PWM.
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
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.
ok. ich probier das mal. da hatte ich was falsch verstanden. leider hab ich kein oszi. und auch keine 400€ :-) danke
Nen Widerstand und ein Multimeter reicht für die Analyse ob Tristate, High oder Low völlig aus.
sry wg. meiner ignoranz. jetzt klappt's nämlich. warum genau geht da bei pins auf INPUT die spannung langsam hoch? das würd mich interessieren. danke nochmal für die hilfe!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.