Problema con SPWM en PIC Simulator IDE

buenas a todos

este programa funciona en pic simulator ide, pero al cargarlo a un 16f877a el ancho de pulso siempre es el mismo
la idea es que hace medio ciclo y cambia el valor de portc.3 y portc.1 al opuesto cada cruce por cero, para elejir un tr de potencia.


programa en basic del pic simulator ide:

Código:
Define CONF_WORD = 0x3f72
TRISC = %00000000
AllDigital
PWMon 1, 9
Dim k As Byte
Dim k1 As Bit
Dim sin(32) As Byte
sin(0) = 0
sin(1) = 25
sin(2) = 49
sin(3) = 73
sin(4) = 96
sin(5) = 118
sin(6) = 137
sin(7) = 159
sin(8) = 177
sin(9) = 193
sin(10) = 208
sin(11) = 220
sin(12) = 231
sin(13) = 239
sin(14) = 245
sin(15) = 249
sin(16) = 250
sin(17) = 249
sin(18) = 245
sin(19) = 239
sin(20) = 231
sin(21) = 220
sin(22) = 208
sin(23) = 193
sin(24) = 177
sin(25) = 159
sin(26) = 137
sin(27) = 118
sin(28) = 96
sin(29) = 73
sin(30) = 49
sin(31) = 25




k = 0
k1 = 0
seno:
WaitUs 100
If k1 = 1 Then
    PORTC.3 = 0
    PORTC.1 = 1
Endif


If k1 = 0 Then
    PORTC.3 = 1
    PORTC.1 = 0
Endif
    
PWMduty 1, sin(k)
If k = 33 Then
    k = 0
    Toggle k1
Endif
k = k + 1
Goto seno
End



desde ya muchas gracias a todos.
 
Última edición por un moderador:
bueno el programa anda de maravilla, lo unico que hay que cambiar el waitms depende la f, es que lo cargaba el pic con otro archivo del mismo nombre pero que tenia otra cosa.. jajaja
 
Atrás
Arriba