La placa parece qu va bien he cambiado de PIN y estamos en las mismas
este es el codigo es una prueba para enviar DTM con un Holtek9200A
Tengo que generar un clock que lo hago con el A0
No meto el codigo dentro del while y miro la pata A0 y esta continuamente haciendo el clock ¿?
#include <p18f8720.h>
#include <delays.h>
#define CLK_920 PORTBbits.RA0
#define DATA PORTAbits.RA1
#define CE PORTAbits.RA0
char D0,D1,D2,D3,D4;
/*****************************************
* Función que envia recibe *
*****************************************/
void sendDTMF(char data) {
switch (data){
case 1:
D0 = 1;
D1 = 0;
D2 = 0;
D3 = 0;
D4 = 0;
break;
case 2:
D0 = 0;
D1 = 1;
D2 = 0;
D3 = 0;
D4 = 0;
break;
case 3:
D0 = 1;
D1 = 1;
D2 = 0;
D3 = 0;
D4 = 0;
break;
case 4:
D0 = 0;
D1 = 0;
D2 = 1;
D3 = 0;
D4 = 0;
break;
case 5:
D0 = 1;
D1 = 0;
D2 = 1;
D3 = 0;
D4 = 0;
break;
case 6:
D0 = 0;
D1 = 1;
D2 = 1;
D3 = 0;
D4 = 0;
break;
case 7:
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 0;
D4 = 0;
break;
case 8:
D0 = 0;
D1 = 0;
D2 = 0;
D3 = 1;
D4 = 0;
break;
case 9:
D0 = 1;
D1 = 0;
D2 = 0;
D3 = 1;
D4 = 0;
break;
case 0:
D0 = 0;
D1 = 1;
D2 = 0;
D3 = 1;
D4 = 0;
break;
case 11:
D0 = 1;
D1 = 1;
D2 = 0;
D3 = 1;
D4 = 0;
break;
case 12:
D0 = 0;
D1 = 0;
D2 = 1;
D3 = 1;
D4 = 0;
break;
case 13:
D0 = 1;
D1 = 0;
D2 = 1;
D3 = 1;
D4 = 0;
break;
case 14:
D0 = 0;
D1 = 1;
D2 = 1;
D3 = 1;
D4 = 0;
break;
case 15:
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 1;
D4 = 0;
break;
case 16:
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 1;
D4 = 1;
break;
case 941:
D0 = 1;
D1 = 1;
D2 = 0;
D3 = 0;
D4 = 1;
break;
case 1633:
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 0;
D4 = 1;
break;
}
CE = 0;
Delay10TCYx(20);
DATA = D0;
CLK_920 = 0;
Delay10TCYx(2.6);
CLK_920 = 1;
Delay10TCYx(2.6);
DATA = D1;
CLK_920 = 0;
Delay10TCYx(2.6);
CLK_920 = 1;
Delay10TCYx(2.6);
DATA = D2;
CLK_920 = 0;
Delay10TCYx(2.6);
CLK_920 = 1;
Delay10TCYx(2.6);
DATA = D3;
CLK_920 = 0;
Delay10TCYx(2.6);
CLK_920 = 1;
Delay10TCYx(2.6);
DATA = D4;
CLK_920 = 0;
Delay10TCYx(2.6);
CLK_920 = 1;
Delay10TCYx(2.6);
// if (data == 16) CE = 1;
// El tono 16 nos para la emision de ese tono DTMF
}
void main (void)
{
TRISA = 0x00;
PORTA = 0x00;
CLK_920 = 1;
CE = 1;
DATA = 0;
// for(;
{
sendDTMF(1);
//}
En teoria asi deberia parar el clock, hacer 5 pulsos y parar ya que solo pasa una vez por el codigo, en cambio CLK_920 (pata A0) sique haciendo el clock.
¿?¿?
Gracias.