Udregning af delay i PIC-programmering *Løst*

Diverse d.  24. juni. 2007, skrevet af Maximus
Vist: 330 gange.

Maximus
 
Elitebruger
Tilføjet:
24-06-2007 19:23:01
Svar/Indlæg:
538/20
Jeg står og skal til eksamen i overmorgen i teknikfag på HTX, hvor jeg har benyttet mig af en PIC til at fremtvinge et delay.

Selve koden som jeg skal have lidt hjælp til, ser således ud:

PORTB.F6 = 1; //tænd port
Delay_ms(5000); //5 sekunders delay
PORTB.F6 = 0; // sluk delay
x = 1000; //definerer x=1000
EEProm_Write(p, 1); //skriv til EEPromen at vinduet er tændt
delay_ms(30); //lille delay efter skrivning af EEProm
do {
x = x-1; //kører x-1 igennem
if (PORTA.F1) goto luk; //hvis denne port bliver aktiveret, gå til "luk"
delay_ms(10); //for hver gang løkken kører igennem, lav et lille delay på 10ms
} while(x != 0); //kør denne løkke igennem indtil x=0, hvorefter videre
PORTB.F7 = 1; //tænder porten
Delay_ms(5000); //5 sekunders delay
PORTB.F7 = 0; //slukker porten
x = 36000; //sætter nu x = 36000 hvilket tager 1 time at køre igennem
EEProm_Write(p, 0); //skriv til EEPromen at vinduet er lukket
delay_ms(30); //delay efter EEProm
do {
x = x-1; //laver en løkke hvor den siger x-1
if (PORTA.F0) goto taend; //hvis denne port bliver aktiveret, gå til "tænd"
delay_ms(10); //delay på 10ms ved hvert gennemløb
} while(x != 0); //bliv ved med at køre denne løkke igennem, indtil x=0
} while (1);
};
};


Som I kan se, så benyttes et loop til at fremtvinge et delay. Mit problem er så, at jeg har glemt, hvordan man udregner dette delay, således det passer med eksempelvis 5 minutter (Vi ved den kører loopet igennem x-antal gange men hvordan definerer vi størrelsen på x, således det kommer til at passe med eksempelvis 5 minutter?)

Jeg har ikke lige kunne finde noget på nettet, som viser hvordan man omregner fra loops til ms og derfor håber jeg, at der findes en venlig sjæl herinde, som kender noget til dette fænomen og som måske har arbejdet med samme emne tidligere.

Hardware som benyttes er:

PIC16F84A
4MHz XT oscillator
Maximus
 
Elitebruger
Tilføjet:
24-06-2007 19:45:34
Svar/Indlæg:
538/20
der her handler jo netop om, at vide sammenhængen mellem clock cycles, frequency osv.osv.

Kan simpelthen ikke huske sammenhængen!


Maximus
 
Elitebruger
Tilføjet:
24-06-2007 22:10:04
Svar/Indlæg:
538/20
okay, har fundet ud af det nu 😛 😛 (det er da også irriterende når man selv skal til at tænke)