Zdravím všechny,
zkoušel jsem projít nějaké stránky a kouknout do datasheetu k ATTINY2313, ale jsem z toho hodně zmatený. Mám nainstalovaný PonyProg a AT Studio. Co vše mám nastavit aby jednočip po spuštění tikal na vnitřním krystal který by měl být 8MHz (prá je to nějaká propojka u Fuse Low Bite). Když pak budu chtít aby jednočip odpočítával třeba 4 hodiny (14400 sekund = 14400000000 mikro-sekund) tak udělám cykl o jedné instrukci který se zopakuje 14400000000krát ? ... a nebo bych mohl použít Watchdog? Mám to chápat jako Timer v Delphi? Nastavím čas a spustím, po jeho odpočtu se provede instrukce (třeba JUMP někam)? Jinak 8MHz = 1 procesorový tik = 1uS ? ...
Jak mám začít první řádek? Má mít ATTINY na začátku nějakou startovací instrukci? A to PWM? ... z toho jsem totálně mimo.
Díky moc za pomoc.
Toto jsem přidal dodatečně - kód jak by to mohlo být ale ve vyšším jazyce (aby se nikdo nemusel namáhat s logikou, tak jsem to takto načrtnul):
// zapnutí ON / OFF přepínače do polohy ON
START PROGRAMU
A=0 // proměná alarm 1
B=0 // proměná alarm 2
Tlacitko1=1 // nastavení log. 1 na tlačítku
Tlacitko2=1 // nastavení log. 1 na tlačítku
Tlacitko3=1 // nastavení log. 1 na tlačítku
VystupLED1=0 // zhasnutí LED diody č.1
VystupLED2=0 // zhasnutí LED diody č.2
JasLED=0 // nejmenší jas LED diod
tlacitko3 nastavit na preruseni
cykl1:
if tlacitko1=0 then
A=A+1
VystupLED1=1 // rozsvícení LED diody č. 1
VystupLED2=1 // rozsvícení LED diody č. 2
cekej 200 ms
VystupLED1=0 // zhasnutí LED diody č. 1
VystupLED2=0 // zhasnutí LED diody č. 1
if tlacitko2=1 then goto cykl1
cykl2:
if tlacitko1=0 then
B=B+1
VystupLED1=1 // rozsvícení LED diody č. 2
VystupLED2=1 // rozsvícení LED diody č. 2
cekej 100 ms
VystupLED1=0 // zhasnutí LED diody č. 1
VystupLED2=0 // zhasnutí LED diody č. 1
if tlacitko2=1 then goto cykl2
Timer=A*3600000 // počet hodin * 3600000 milisekund
Timer.start=1 // spuštění odpočtu alarmu
Timer.Crrr: // sem skočí když timer odpočítá vše do nuly
cekej 2000 ms
JasLED=JasLED+1 // nastavení jasu LED diod
PWM=JasLED // nastavení PWM na požadovaný jas LED diod
VystupLED1=1 // rozsvícení LED diody č. 1
VystupLED2=1 // rozsvícení LED diody č. 2
cekej 200 ms
VystupLED1=0 // zhasnutí LED diody č. 1
VystupLED2=0 // zhasnutí LED diody č. 2
goto Timer.Crrr
Preruseni: // sem skočí když se stiskne tlačítko č.3
if Timer.start=1 then return // pokud timer stále počítá (zamezení stisknutí tlačítka dřív než dopočítá čas)
VystupLED1=0 // zhasnutí LED diody č. 1
VystupLED2=0 // zhasnutí LED diody č. 2
JasLED=0 // jas LED diod opět na nejmenší hosnotu
Timer=B*60000 // počet minut * 60000 milisekund
Timer.start=1 // spuštění odpočtu alarmu
... řekl bych že to je asi vše
