Buenas tardes,
Estabamos realizando un puente completo controlado con SCR's, pero siempre falla (segun muestra la imagen ) sale el error Pin 'ON1' is not modelled, tambien el 2, U1 (es el AOP)
adjunto el programa en PIC CCS -
El programa consiste en :
a traves de una interrupción externa (por RB0 cuando pase de bajo a alto L_TO_H) queremos entrar a la función de la interrpción ... configurar la conduccion del SCR
(la señal alterna tiene una amplitud de 220 y la frec 50HZ)... un periodo de 0.02, sec y un semiperiodo de 0.01, el cual dividimos en 2 (para empezar a conducir a partir de los 90° del scr), es decir 0.005, osea 5ms, esos 5ms se dividen en 4 (1.25 ms),
cuando se ingresa a la funcion de interrupción se cambia el tiempo de conducción de los scr's (los cuales conducen de par en par), y a partir de los switch en el puerto C, se puede seleccionar cuanto es el tiempo de conducción,
[agrego, que despues se armo solo la parte del AOP en otro esquema de proteus y arrojo el mismo proble]
#include <16f877a.h>
#fuses XT, NOWDT,NOPROTECT,NOPUT
#use delay(clock=4000000) //
#use fast_io (b)
#byte portc =0x05
#byte portd = 0x06
float tiempo =0,retardo=0;//variable global
#INT_EXT
void EXT_isr(void) {
if((pin_c0==0)&&(pin_c1==0));{ //
tiempo= 5;
}
if((pin_c0==0)&&(pin_c1==1));{
tiempo= 3.75;
}
if((pin_c0==1)&&(pin_c1==0));{
tiempo= 2.5;
}
if((pin_c0==1)&&(pin_c1==1));{
tiempo= 1.25;
}
tiempo= retardo;
}
void main(){
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
set_tris_b(0b00000001);
while(true); {//bucle infinito
output_d(0x00000011);
delay_ms(retardo);
output_d(0x00001100);
}
}
Estabamos realizando un puente completo controlado con SCR's, pero siempre falla (segun muestra la imagen ) sale el error Pin 'ON1' is not modelled, tambien el 2, U1 (es el AOP)
adjunto el programa en PIC CCS -
El programa consiste en :
a traves de una interrupción externa (por RB0 cuando pase de bajo a alto L_TO_H) queremos entrar a la función de la interrpción ... configurar la conduccion del SCR
(la señal alterna tiene una amplitud de 220 y la frec 50HZ)... un periodo de 0.02, sec y un semiperiodo de 0.01, el cual dividimos en 2 (para empezar a conducir a partir de los 90° del scr), es decir 0.005, osea 5ms, esos 5ms se dividen en 4 (1.25 ms),
cuando se ingresa a la funcion de interrupción se cambia el tiempo de conducción de los scr's (los cuales conducen de par en par), y a partir de los switch en el puerto C, se puede seleccionar cuanto es el tiempo de conducción,
[agrego, que despues se armo solo la parte del AOP en otro esquema de proteus y arrojo el mismo proble]
#include <16f877a.h>
#fuses XT, NOWDT,NOPROTECT,NOPUT
#use delay(clock=4000000) //
#use fast_io (b)
#byte portc =0x05
#byte portd = 0x06
float tiempo =0,retardo=0;//variable global
#INT_EXT
void EXT_isr(void) {
if((pin_c0==0)&&(pin_c1==0));{ //
tiempo= 5;
}
if((pin_c0==0)&&(pin_c1==1));{
tiempo= 3.75;
}
if((pin_c0==1)&&(pin_c1==0));{
tiempo= 2.5;
}
if((pin_c0==1)&&(pin_c1==1));{
tiempo= 1.25;
}
tiempo= retardo;
}
void main(){
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
set_tris_b(0b00000001);
while(true); {//bucle infinito
output_d(0x00000011);
delay_ms(retardo);
output_d(0x00001100);
}
}
Adjuntos
Última edición: