"Langzeit"-Timer

Gast #224772
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).

...
"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.

...
Gast
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
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.