wait vs timer?

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

wait vs timer?

Hozzászólás Szerző: joda »

Sziasztok, lenne egy egyszeru kerdesem hozzatok akik komolyan programoztok Bascom-ban:
Hobi szinten hasznalom az AVR-t es Bascom nemkem untig eleg. De most bejott valami melo amit siman meg tudnek oldani elmeletileg de bisztonsag kedveert profiktol szeretnek velemenyt kerni.
Kell egy kutyurt csinalnom ahol 8db led lenne egy kapcsolon keresztul bekapcsolva. Minden led 1h idot jelent. Ember nyomkodna a kapcsolot. Namost, az ido amit szamolnek az 0-70perc ahol az ember az 50-70perc-ig nyomhatja meg a kapcsolot.
Ha kihagyta akkor az a led nem kapcsol be.
Ok.
Ez egyszeru.
Ami engem nagyon bolygat az, hogy hasznalhatom a Bascom wait parancsat es vele szamolnam az idot viszont a gombnyomast meg egy INT-el kezelnem le vagy inkabb csinaljam a 70perc meres timer-el?
Szemelyessen nekem eleg bonyolult a timer kezelese es ezert szeretnem a wait parancsot hasznalni mert a procko semmi mast nem csinalna.
Tehat mennyire lenne megbizhato a wait hasznalata a timer-hez viszonyitva?
Sok helyen olvastam, hogy kerulni kell a wait parancsot de akkor minek irtak meg ha nem jo hasznalni?

Koszi mindenkinek...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: wait vs timer?

Hozzászólás Szerző: Robert »

A timerrel precíz időzítésed van.
A wait működése során kitolódik, ha közben int esik be (az int idejével meghosszabbodik).

A háttérben legyen egy timer alapú számlálód. pl. külső 32kHz és onnan van date/time függvényed (sysclock, hour, days, stb)!
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

Re: wait vs timer?

Hozzászólás Szerző: joda »

Koszi a valaszt. Probalok 1s szamlalot csinalni kezdetnek timer1-el de nem mukszik.
Tudna valaki segiteni mert nem villogtatja a ledemet a kovetkezo kod:

Kód: Egész kijelölése

$regfile = "2313def.dat" 
$crystal = 8000000 

$hwstack=40 
$swstack=16 
$framesize = 32 

const Timer1Reload = 7812 
Config Timer1 = Timer , Prescale = 1024 
Config Portb.0 = Output 

load timer1 , Timer1Reload 
on ovf1 Timer1_isr 
enable timer1 
Start Timer1 

enable interrupts 

Portb.0 = 1 

Timer1_ISR: 
   load timer1, Timer1Reload 
    If Portb.0 = 1 Then 
      Portb.0 = 0 
      Waitms 500 
   Else 
      Portb.0 = 1 
      Waitms 500 
   End If 
  return 
Elore koszi mindenkinek...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: wait vs timer?

Hozzászólás Szerző: Robert »

ISR-ben mit keres WAIT?????
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

Re: wait vs timer?

Hozzászólás Szerző: joda »

Ok, kijavitottam es most mar a Timer1_isr-ben
csak annyi van, hogy:

Kód: Egész kijelölése

Timer1_isr:
Load TIMER1,Timer1reload
PortB.0 = 1
Return
Es tovabra se villogtatja a ledem. Csak bekapcsol a led es eg.
Az isr elott meg PortB.0 = 0 van.

Tovabra se latom hol a hiba... :-(
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: wait vs timer?

Hozzászólás Szerző: Robert »

És hol/mikor kapcsolod ki a LED-et?
És a Bascomban a főprogramod ráfut az ISR-re....
Avatar
joda
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2011. március 23. szerda, 6:00

Re: wait vs timer?

Hozzászólás Szerző: joda »

HA!!!! Vagom! :-)
Koszonom.
Hianyzik a do - loop es ezert rafut a programom
rogton az isr-re.
Koszi.
Válasz küldése