 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Sob Jan 24, 2004 7:45 pm Naslov sporočila: Kaj sem spregledal? |
|
|
Torej delam na enem projektu z mikrokontrolerjem 16F84A.
Zadeva bi bila lahko narejena tudi na kakšnem manjšem samo to še sledi.
Rabim v bistvu samo tri vhode / izhode. Na enem PIC posluša če je neko stikalo vklopljeno ali izklopljeno (RA2). Drug pin je porabljen za merjenje "temperature" (RA3) z kondenzatorjem in NTC uporom, ne tretjem pa je priključena LED dioda (RA1), ki glede na temperaturo in stanje stikala prikazuje neko stanje.
Program je v bistvu časovnik, ki ledico prižge po nekem času, ko je stikalo že izklopljeno. Pod pogojem, da je temperatura dovolj nizka. Če je temperatura previsoka naj bi počakal, da je temperatura dovolj nizka in nato počakal še nek pred-definiran čas in nato nazaj prižgal LED-ico
Program je sicer brez include datoteke, ki pa dela brezhibno. PIC uspešno ugasne LED diodo ob vklopu stikala. Žal pa se ne zmeni za temperaturo. Ne glede na temperaturo samo odšteje nastavljeno minuto po izklopu stikala.
Število ciklov, ki jih PIC prešteje (Temp_OFF) sem dobil s pomočjo testne ploščice in modificiranim programom, ki ga je Silvo objavil na enem drugem forumu.
Kako se sploh lotiti debugiranja takšnega programa??
Opis: |
|
 Download |
Ime datoteke: |
lucka.txt |
Velikost datoteke: |
3.58 KB |
Downloadano: |
16 krat |
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Jan 24, 2004 9:20 pm Naslov sporočila: |
|
|
Tako na hitro sem pogledal,
Tole mi ni jasno :
Koda: |
#DEFINE Zakasnitev_Time .59904 ;* 1 minuta maximalno. (za zakasnitev za 5 minut rabiš 5x 1min) |
8 bitna vrednost je desetiško lahko max 255 ? Kje imaš napisan tisti makro za zakasnitiev ? program sem "sledil do tja kjer se preverja vrednost, ki je v registru "rezultat" če je le ta enaka ali večja od "temp_OFF" ostane v zanki sicer "nagazi" tisto proceduro z zakasnitvijo ...tukaj ne vem kaj se dogaja. Če program deluje pravilno lahko preveriš tako, da tisto vrednost ki naj bi bila izmerjena napišeš "ročno" .
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Sob Jan 24, 2004 10:24 pm Naslov sporočila: |
|
|
Ja makro, ki ga kličem razbije vrednost na 2 bajta in šteje (High /low).
Tako da tista številka dovolj točno zakasnitev 1 minute (59.904s)
Glede procedure:
Vrednost ki sem jo določil V Temp_off naj bi bilo število ciklov, ki jih naredi PIC med polnjenjem kondenzatorja.
Ideja je ta, da bi PIC preverjal, če je vrednost, ki jo je v zanki izmeril večja od vrednosti Temp_off, kar bi pomenilo, da je temperatura dovolj nizka za nadaljevanje programa pri proceduri zakasnitve.
Zato najprej preverjam bit C status registra, ki kaže če je rezultat razlike med izmerjeno vrednostjo in Temp_off >= 0. Če je C=1 bi pomenilo, da je razlika 0 ali pozitivna, kar pomeni, da je temperatura dovolj nizka.
Ker meje lahko malo nihajo sem nato testiral še bit Z, ki bi moral biti v primeru pozitivne razlike 0.
Glede debugiranja:
Ja valjda zakaj se nisem tega spomnil?
Vržem ven proceduro za merjenje napetosti in Rezultat spemenljivki dodam vrednost večjo od Temp_off pa program nikoli nebi smel prižgati ledice.
Hvala za odgovor!
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|