Ver imagen. Toma de cámara de mi osciloscopio.
Tengounproblemaextrañoconmiproyecto.EstoyusandoundsPIC33FJ128GP802DSC/MCU.Enestaaplicación,estoysincronizando-separandounaseñalCVBSutilizandounLM1881ytransmitiéndolaalaMCU(canal1).LaMCUestáconfiguradaparainterrumpirelcambiodepin.Estapartefuncionacorrectamenteycontrolaunavisualizaciónenpantallaqueescribíperfectamente.
Pero,laparteextrañaesqueencadainterrupciónestoypulsandobrevementeelpinRB12paradepuraralgo.¡Estoestácausandolaextrañaformadeondaendescomposiciónenelcanal4!Estoyesperandosolounbrevepulso,perotomacasi64microsegundos(eltiempodelalínea)decaeracero,casicomosihubierauncapacitormuygrandeenelpin(peronolohay).Además,puedeverelmismoefectoenelflancodescendente,yaquelainterrupcióntambiénseactivaeneso.¿Quépodríaestarcausandoesto?¡Metienecompletamenteperdido!
EstoyusandoestecódigoenmiISR:
TRISBbits.TRISB12=0;asm("nop");
PORTBbits.RB12 = 1;
asm("nop");
TRISBbits.TRISB12 = 1;
asm("nop");
Los nops son para garantizar que no se produzcan problemas de lectura-modificación-escritura, pero ocurre con o sin esos nops.