Forum: Mikrocontroller und Digitale Elektronik Attiny13-Reset Problem


von Andreas H. (raucher91)


Lesenswert?

Hallo Forum,

ich steh grad aufm Schlauch und zwar möchte ich bei meinem Wechslblinker 
eine Funktion einprogrammieren damit im falle dass es zu einem hänger im 
Programm kommt der Controller neu startet. gelesen habe ich dass es über 
einen Watchdog möglich ist leider finde ich keine für einen Anfänger 
hinreichend erklärte Anleitung damit ich es in C Programmieren kann.

Mein Code bisher:
1
#include <avr/io.h>
2
#include <util/delay.h>  // Warteschleife /Library)
3
#include <avr/wdt.h>     // Watchdog einbinden
4
5
int main(void)
6
{  DDRB = 0xff;
7
    while(1)
8
    {
9
                PORTB = (1<<PB0) ;
10
                _delay_ms(220);
11
            PORTB = (0<<PB0) ;
12
              _delay_ms(90); 
13
              PORTB = (1<<PB0) ;
14
              _delay_ms(220);
15
              PORTB = (0<<PB0) ;
16
              _delay_ms(130);
17
                                PORTB = (1<<PB1) ;
18
                        _delay_ms(220);
19
                        PORTB = (0<<PB1) ;
20
                        _delay_ms(90);
21
                                                PORTB = (1<<PB1) ;
22
                                                _delay_ms(220);
23
                                                PORTB = (0<<PB1) ;
24
                                                _delay_ms(130);
25
    }
26
return 0;}


Wie muss ich dass programm gestalten damit der Controller z.B. nach 
1Sekunde nicht funktin ein reset ausgelöst wird ?

von Georg G. (df2au)


Lesenswert?

Wie wäre es für den Anfang, wenn du dir einfach die Hilfe zu wdt.h 
ansehen würdest? Dort findest du dann Funktionen, die den Wachhund von 
der Kette lassen und ihn zur Ordnung rufen. Dort sind auch 
Zeitkonstanten definiert.

von Uwe S. (de0508)


Lesenswert?

Hallo,

diese Funktionalität ist zum einen im Datenblatt beschrieben und hier 
für die Sprache C umgesetzt:

http://www.nongnu.org/avr-libc/user-manual/group__avr__watchdog.html

von Thomas E. (thomase)


Lesenswert?


von Samuel C. (dragonsam)


Lesenswert?

Das einzige Argument dafür wäre allerdings nur der Lernfaktor, denn dein 
Programm wird niemals hängenbleiben.

von Andreas H. (raucher91)


Lesenswert?

Samuel C. schrieb:
> Das einzige Argument dafür wäre allerdings nur der Lernfaktor,
> denn dein Programm wird niemals hängenbleiben.

Erstmal danke für die Antworten. Mein Problem ist dass mein ATtiny nach 
einschalten der betriebsspannung nicht immer startet. Erst nach einem 
Reset startet dieser. Entweder liegt es an dem Vorgeschalteten 
Spannungsregler da dieser beim einschalten kurzzeitig 10V durchlässt 
diese aber nach nicht mal 0.5sek. Auf 5Volt ist. Oder es liegt am ATtiny 
selber aber da hab ich schon 5 verschieden ausprobiert und leider alle 
das selbe Problem. Wie könnte ich dass Problem in den Griff bekommen??

Mit Freundlichen Grūßen
Raucher91

von ich (Gast)


Lesenswert?

Mir ist gerade aufgefallen, wenn dein Programm noch paar Zeilen länger 
wird, mußt du es dann im Querformat ausdrucken :-)

von spess53 (Gast)


Lesenswert?

Hi

>Entweder liegt es an dem Vorgeschalteten
>Spannungsregler da dieser beim einschalten kurzzeitig 10V durchlässt
>diese aber nach nicht mal 0.5sek. Auf 5Volt ist.

Was hast du denn da für Müll eingebaut? Das solltest du schleunigst 
ändern.

>Oder es liegt am ATtiny
>selber aber da hab ich schon 5 verschieden ausprobiert und leider alle
>das selbe Problem.

Wie sehen denn deine Fuses aus?

Abblockkkondensator vorhanden?

MfG Spess

von Andreas H. (raucher91)


Lesenswert?

Fuses sind werksmäßig eingestellt an denen wurde nichts geändert. Und 
der Spannungsregler ist von Reichelt ein LM1084 mit 5V-max 5A. Ja es ist 
ein Kondensator vorgeschaltet vorm ATTiny und es ist nach dem LM1084 
eine Z-Diode drinnen mit 5,1V

von Karl H. (kbuchegg)


Lesenswert?

Andreas Hermann schrieb:
> Fuses sind werksmäßig eingestellt an denen wurde nichts geändert. Und
> der Spannungsregler ist von Reichelt ein LM1084 mit 5V-max 5A. Ja es ist
> ein Kondensator vorgeschaltet vorm ATTiny und es ist nach dem LM1084
> eine Z-Diode drinnen mit 5,1V

zeig doch mal im Schaltbild.

Wozu die Z-Diode?
Wenn du einen Spannungsregler hast, dann ist das seine Aufgabe die 5V 
bereit zu stellen. Da braucht es keine Z-Diode. zumal das sowieso nicht 
funktionieren würde.

Du brauchst keinen Watchdog - du brauchst erst mal einen vernünftigen 
Aufbau!

: Bearbeitet durch User
von Andreas H. (raucher91)


Lesenswert?

Aufbau sollte vernünftig sein da es von einer funktionierenden Schaltung 
übernommen wurde. Schaltplan poste ich morgen. Die z-Diode sollte da 
sein um spannungsspitzen zu killen.

von spess53 (Gast)


Lesenswert?

Hi

>Aufbau sollte vernünftig sein da es von einer funktionierenden Schaltung
>übernommen wurde.

Ein Spannungsregler, der erst mal 10V statt 5V (falls es wirklich so 
ist) ausgibt, gehört nicht in die Kategorie 'funktionierende Schaltung'.

MfG Spess

von Andreas H. (raucher91)


Lesenswert?

Spannungsregler ist nur dazu gekommen Rest ist 1 zu 1 identisch mit 
funktionierender Schaltung.

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.