Witam
Ada20 pisze:Mam coś jak kwarc o częstotliwości 1 Hz i 10 Hz,
Hmmm, w swoim życiu nie spotkałem takich, ale jeszcze nie wszystko widziałem
Ada20 pisze:czy nim dobrze by było zaprogramować Attiny 13 A, na 1 Hz lub 10 Hz?
To nie takie proste...
Ściągnij sobie datasheet ATtiny13a, tam na stronie 23 masz rozdział "
6. System Clock and Clock Options" dalej na stronie 25, masz podane dwie częstotliwości podstawowe wewnętrznego zegara, 9,6 i 4,8MHz. Jeśli ustawisz 4,8MHz oraz "Divide by 8 ON" masz do dyspozycji taktowanie 600kHz, czyli 0,6MHz; Kolejną opcją jest 128kHz. Ale jeśli nie ma to być aplikacja wymagająca bardzo małego poboru prądu, to nie widzę za bardzo sensu zmiany zegara.
Muszę Cię rozczarować, ale do ATtiny, nie podłączysz kwarca, jedyna możliwość taktowania inną częstotliwością to zewnętrzny zegar.
Przy domyślnej częstotliwości zegara 1,2MHz, nie ma najmniejszego problemu uzyskać opóźnienia liczone w .... latach.
Przy
_delay_ms(1000);
i licznikach
unsigned int short licznik1;
możesz uzyskać max opóźnienie 255s, czyli 4 minuty z rozdzielczością 1s.
Jeśli np. zmienisz
_delay_ms(10);
a liczniki zadeklarujesz jako:
unsigned int licznik1;
możesz uzyskać opóźnienie 655s (ponad 10 minut) z rozdzielczością 0,01s. Czego można chcieć więcej
Nawet jeśli potrzebujesz sterować tylko jednym procesem, to możesz zastosować podaną wcześniej sztuczkę z licznikami, lub np.:
while(1)
{
unsigned int a = 0;
......
for (a=0; a < X; a++)
{
_delay_ms(1000);
}
......
}
Gdzie X, oznacza liczbę określającą opóźnienie w sekundach (w tym konkretnym wypadku). Maksymalne opóźnienie może tu wynieść 65535s, czyli 1092 minuty, co daje ponad 18 godzin.
W miejscach kropek, możesz wstawić potrzebne instrukcje.
Pozdrawiam