Hvala lijepa na ukazanim prijedlozima...
Samo nije mi bas najasnije kako to tacno izvesti ::
Naime, pisem u C-ju i sljedeca f-ja :
void delay10( char n) // PRAVI PAUZU OD n*10 ms ,f=3.278 Mhz
{
char i;
OPTION = 7;
do
{
clrwdt(); // OVO JE POTREBNO SAMO AKO JE UKLJUCEN WatchDog
i = TMR0 + 32; // 256 microsec * 32 = 10 ms
while ( i != TMR0)
;
} while ( --n > 0);
}
Da li ste mislili da koristim "ovu" ( u tom stilu ) f-ju ili neku drugu...Kkako sam razumio, u tacno zadanom unaprijed vremenskom intervalu ( timer ), brojati
interrupt-e i na osnovu broja izbrojanih, generisati upravljacki PWM signal ( grubo objasnjeno, ali mislim da ste upravo na to mislili, ispravite ako grijesim ).. Problem je ako ja pozovem ovu f-ju, ona ce tacno odredjeno vrijeme trajati, pa ne znam kad ikrementirati neku promjenjivu ... jer ako sad ubacim unutar funkcije par linija koda ( interrupts ...)potpuno ce izmjeniti trajanje ove f-je.. sto nije dobro ...
Mozda da ubacim par linija koda ,pa da tacno izracunam koliko ce one vremenski trajati ( pa smanjiti ovaj broj u f-ji 32 )...
Sta mislite Vi o tome,da umjesto interrupt-a testiram log. nivoe na pinu PIC-a pa da na osnovu toga generisem PWM signal?? npr:
{ // timer
...
broj_jedinica==0;
broj_nula==0;
if ( PORTB.2==1) broj_jedinica++;
else broj_nula++;
...
}
HVALA !!!!!!!!!!!!!!!!!!!!!!!!!