elektronikkindustrien forum

Regler | Recent posts | emnet RSS | Søk | Registrer | Logg inn

timeout i 89C51/89C52


Post new topic Reply to topic EDAboard.com Forum Hovedsiden -> Microcontrollers -> timeout i 89C51/89C52
Forfatter Melding
semiconductor



Joined: 04 Apr 2003
Innlegg: 294
Hjalp: 3
Sted: Frankrike


Post 27 april 2005 18:02

timeout i 89C51/89C52


Jeg er tilordnet en øvelse for å programmere en AT89C51 for automatisk dør prosjektet.

Jeg står overfor et problem: TIMEOUT

Hvis den ytre sensoren oppdager folk tilgjengelig, vil det åpne døren og ventet indre sensoren oppdager folk tilgjengelig. Etter 20s, hvis ingen signaler finnes det automatisk lukke døren og gå tilbake til begynnelsen av programmet (venter på signal fra ytterdøren.

med AT89C51 Jeg programmering i C, men jeg vet ikke hvordan å designe TIMEOUT algoritmen med AT89C51 (20 sekunder).

Kan noen anbefale meg løsninger?
Tilbake til toppen
IanP



Joined: 05 Oct 2004
Innlegg: 6490
Hjalp: 1542
Sted: West Coast


Post 28 april 2005 1:25

Re: timeout i 89C51/89C52


Bruk TIMER1 i MODE1 (16-bit counter) teller (Fclock/12): FFFFh.
Hvis krystall er 11.0952MHz avbruddet vil skje hver (11095200/12) / 65536 = 14,108 .. ganger per sekund.
Lag variabel TimeH og TimeL.
Øk TimeHTimeL hvert avbrudd. For å komme til 20 sekunder vil du trenge ≈ 282 avbryter og som vil forlate TimeHTimeL = 01 1A (h) = 0282 (d).
Nå kan du tilbakestille 20s counter (TimeHTimeL) og utføre hva som bør gjøres etter 20s ..

Lykke til ..
Tilbake til toppen
mrcube_ns



Joined: 10 april 2002
Innlegg: 429
Hjalp: 11
Location: Dark side of the Moon


Post 28 april 2005 21:17

Re: timeout i 89C51/89C52


IanP er completly right,

men, foreslår jeg å bruke 12MHz krystall, slik at en syklus er 1US.

Deretter kan du bruke timer 1 som 16-bits timer og gjorde 50ms timer (T1H = 0x3C T1L = 0xAF), så du har 20 teller i ett sekund => til rike 20sec du trenger nøyaktig 400 teller.


Med vennlig hilsen,


Mr.Cube
Tilbake til toppen
Google
AdSense
Google Adsense




Post 28 april 2005 21:17

Annonser




Tilbake til toppen
Hero



Joined: 06 Mar 2002
Innlegg: 145
Hjalp: 2


Post 29 april 2005 3:51

Re: timeout i 89C51/89C52


Hei,

For lang tidsperiode må du Sotware teller.

Bruk 16-bits maskinvare counter for periodisk intterupt generasjon.

I avbryte tjenesten rutinemessig satt CNT_FLAG variabel.

unsigned char CNT_FLAG;
unsigned long cnt;
unsigned char TIMEOUT;
unsigned char TIMEOUT_ENABLED;

# define TIMEOUT_THRESHOLD 1024

void interrupt_routine ()
(
CNT_FLAG = 1;
)

void main ()
(
init ();

mens 1 () (
...
cnt_process ();
sleep (); / / gå til hvilemodus
)
)

void cnt_process ()
(
if (CNT_FLAG) (
CNT_FLAG = 0;
if (TIMEOUT_ENABLED) (
if (cnt <TIMEOUT_THRESHOLD)
cnt ;
TIMEOUT = (cnt == TIMEOUT_THRESHOLD);
)
)
)

Når cnt nå TIMEOUT_THRESHOLD TIMEOUT vil bli satt.

En annen løsning er å øke cnt i avbruddet rutinen

void interrupt_routine ()
(
if (TIMEOUT_ENABLED) (
if (cnt <TIMEOUT_THRESHOLD)
cnt ;
TIMEOUT = (cnt == TIMEOUT_THRESHOLD);
)
)
Tilbake til toppen
Arabiske versjonen Bulgarsk versjon Catalan versjon Tsjekkisk versjon Dansk version Tysk versjon Gresk versjon English version Spansk versjon Finsk versjon Fransk versjon Hindi versjon Kroatisk versjon Indonesisk versjon Italiensk versjon Hebraisk versjon Japansk versjon Koreanske versjonen Litauisk versjon Latvisk versjon Nederlandsk versjon Norsk versjon Polsk versjon Portugisisk versjon Rumensk versjon Russisk versjon Slovakisk versjon Slovensk versjon Serbisk versjon Svensk versjon Tagalog version Ukrainsk versjon Vietnamesisk versjon Kinesisk versjon
Post new topic Reply to topic EDAboard.com Forum Hovedsiden -> Microcontrollers -> timeout i 89C51/89C52
Side 1 av 1

subj

text

Alle klokkeslett er GMT 1 Hour
Lignende emner:
Kalkulatoren bruker 89C51 eller 89c52 (6)
forskjell i atmel 89C51 og 89c52 (9)
timeout feil i vb (1)
C-kode (Tesitng en maskinvarebasert timeout) (7)
SIM700D: Timeout ganger av AT kommandoer? (3)
89C52 Serial Interface (3)
grensesnitt 89c52 med PC (5)
89C52 Desing problem (4)
LCD-kode 89c52 (5)
Query vedrørende 89c52 .... (2)


Abuse | | Administrator | | Moderatorer | | Støtt oss | | sitemap
topic RSS