Citazione:
Originalmente inviato da ElNonino
Confermo che con poche righe di codice in C si fa tutto...... ed avanza una marea di tempo per gestire un display, un monitoring su PC etc etc. boh...sarà!! |
questo dorvebbe essere già la trasmissione di 8 canali...e dovrebbe funzionare!! gli otto canali sono separati...niente trimmer:
void main (void)
{
int n,i,c,canale,durata=0;
int sinc;
TRISB = 0;
TRISC = 0;
TRISD = 0;
ADCON1 = 0x82;
while(1){
for(n=0;n<8;n++){
PORTB.F0=1;
canale = ADC_Read(n);
canale = canale/1024*1000;
delay_us(400);
PORTB.F0=0;
delay_us(600);
for(i=0;i<canale;i++){
delay_us(1);
**
durata = durata + canale;
**
sinc = 12000 - durata;
for(c=0;c<sinc;c++){
delay_us(1);
**
**
**
sinc è la pausa di fine stringa...quella di sincronismo
durata è la somma di tutti i Toff letti dai potenziometri
canale è il numero letto dal potenziometro prima, ed il numero di uS di Toff variabile.