Sledovanie prekrocenia frekvencie

C,C++,C#

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Sledovanie prekrocenia frekvencie

Príspevok od používateľa xmilos » 25 Apr 2014, 12:17

Na ziadost jedneho clena pre sledovanie pozadovanej frekvencie prikladam kratky priklad pre jadro X51 ( 89c2051 )
Vstup frekvencie je P3_2 ( externe prerusenie ), vystup je volitelny ( v priklade P1_0 ).

Kód: Vybrať všetko

#pragma code,debug,small
#include<Atmel/AT892051.h>

// frekvencia oscilatora v Hz, oneskorenie, perioda v s
#define oscilator 12000000
#define frekv 60
#define vyst P1_0

void main (void)
	{
// nastavenie casovaca T0, T1 rezim 1
     TL0  = (0xFFFF - ((oscilator/12)/frekv));
     TH0  = (0xFFFF - ((oscilator/12)/frekv)) / 0x100;
     TMOD = 0x01;
     TCON = 0x17;
	 IE   = 0x81;
	 while(1);
	}

void ext0(void) interrupt 0
	{
	if(!TF0) vyst = 1;
	else vyst = 0;
	TF0 = 0;
	IE0 = 0;
    TL0  = (0xFFFF - ((oscilator/12)/frekv));
    TH0  = (0xFFFF - ((oscilator/12)/frekv)) / 0x100;
	}
0