Hallo! Wie bekomme ich einen "Lang"zeit-Timer (so ca. 5-10 Sekunden) mit dem AVR hin? Sinn und Zweck ist ein Softstart für die Heizung in einem Röhrenverstärker, d.h. nach der eingestellten Zeit soll ein port auf High gehen und ein Relais schalten, welches einen Widerstand überbrückt. Prinzipiell ginge das zwar auch einfacher und schneller mit einem NE555, aber da der Verstärker wohl demnächst sowieso eine Ansteuerung Fernbedienung bekommen soll könnte ich auch alles in einem Chip integrieren. Softstart ginge zwar sicher auch per Phasenanschnitt, allerdings habe ich dann sicher beim Start ein ungesundes Brummen drauf. Gruß, Hase
Sowas macht man mit einem Heißleiter im Heizkreis... Im AVR nimmt man einen Timer (Interrupt) und zählt in der ISR ein Register hoch (oder runter). Reicht ein Register nicht, so kann man mehrere Register kaskadieren. Einfach bei Überlauf des niederwertigen das höherwertige erhöhen (vermindern). ...
Hm, unmodern? Aber so wird erst geschaltet wenn eine bestimmte Temperatur tatsächlich erreicht ist und dies ohne großen Aufwand. Gruß
"Geschaltet" wird da eigentlich garnicht, sondern kompensiert. Es kommt ja ein (auf den Heizkreis abgestimmter) Kompensationsheißleiter zum Einsatz. So wie der Widerstand der Heizwendeln (Kaltleiter) steigt, so verringert sich der Widerstand des Heißleiters. ...
void pause(int); volatile int timercounter; INTERRUPT(SIG_OVERFLOW2) //Pausefunktion { TCNT2 = 0; timercounter++; } int main(void) { pause(10);// return 0; } void pause(unsigned int zeit) { TCNT2 = 0; TIMSK |= 0b01000000; //Timer Overflow Interrupt enable TCCR2 = 0b00000101; timercounter = 0; while(timercounter < zeit); TIMSK &= 0b10111111; //Timer Overflow Interrupt disable }
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.