Buenas,
Estoy intentando generar una señal triangular usando la interrupción del Timer2 a su vez, uso un DAC (R2R) para obtener la señal en proteus, pero hasta el momento no he podido lograrlo (solo logro la onda "serrucho" o algún tipo de "pwm" forzado). Por favor, podrían indicarme en qué estoy fallando. Muy agradecido.
int flag, flag1; //flag mediante software
.....
while(true){
if(flag ==1){
if(count ==256){
flag1 =1;
}else{
++count;
PORTB =count;
flag =0;
}
}
}
void interrupt high_priority TMR2_int(void){
if(PIR1bits.TMR2IF ==1){
flag =1;
if(flag1 ==1){
if(count ==0){
flag =0;
}else{
--count;
PORTB =count;
flag1 =0;
}
}
PIR1bits.TMR2IF =0;
}
}
Por favor, guienme.