Da ja pitam nesto, ako je PIC u toj petlji jedan sat, on za to vrjeme ne moze raditi nista jer je u petlji. Koja je logika toga.
Ako trebate jedan sat interval na nekom pinu to se rjesava drugacije. Ukljucite jedan tajmer da vam recimo svakih 1ms ili 10ms interapt uvecava jedan brojac za jedan do neke vrjednosti recimo 1000 ako je 1ms interapt dobijate vrijednost od jedne sekunde koje ponovno sa dva brojaca brojite i dobijate 1 sat.
Recimo nesto ovako
interupt // znaci na svaku milisekundu pic tajmer okine ovj deo programa koji broji ms
{ brojac_milisekundi++;
if(brojac_milisekundi>999){
brojac_milisekundi=0;
brojac_sekundi++;
}
//onda u glavnoj petlji vecinu vremena izvrsava ovaj dio programa
while(1){
if(brojac_sekundi>59){
brojac_minute++;
brojac_sekundi=0;
}
if(brojac_minuta>59){
ukljuci_pin;
brojac_minuta=0;
}
//i tako dalje ovdje recimo dopisete program koji drzi zeljeno vrijeme pin ukljucen itd....
}
Onda vam mikrokontroler moze raditi jos dosta toga i ukljucivati pin recimo svaki sat.
Zamislite vas program kao jednu vrpcu papira koja je zalijepljena na krajevima i beskonacna je. Vas PIC vrti tu beskonacnu traku i kada se ukljuci interapt iskoci na onu manju traku koju izvrti i kad je zavrsi opet upadne u glavnu petlju tamo gdje je stao i nastavi vrtiti traku i izvrsavati komande po redu.
Te delay pogoto ove maratonske vece od 1ms slobodno zaboravite kod pisanja programa
.