Code: Select all
unsigned unsigned userRD_buffer[64];
unsigned unsigned userWR_buffer[64];
const char *txtmode = "AT+CMGF=1\r\n";
const char *alert0 = "AT+CMGS=\"60173317358\"\r ALERT 0\n";
const char *alert1 = "AT+CMGS=\"60173317358\"\r ALERT 1\n";
const char *alert2 = "AT+CMGS=\"60173317358\"\r ALERT 2\n";
void interrupt(){
asm CALL _Hid_InterruptProc
asm nop
}//~
//******************************************************************************
//Initialization routine
//******************************************************************************
void Init_Main() {
//Disable all interrupts
//Disable GIE, PEIE, TMR0IE, INT0IE, RBIE
INTCON = 0;
INTCON2 = 0xF5;
INTCON3 = 0xC0;
//Disable all priority level
RCON.IPEN = 0;
PIE1 = 0;
PIE2 = 0;
PIR1 = 0;
PIR2 = 0;
//Configure all ports with analog function as digital
ADCON1 |= 0x0F;
//Port Configuration
TRISA = 0;
TRISB = 0b00000111; //pin RB0, RB1, RB2 are inputs
TRISC = 0xFF;
TRISD = 0xFF;
TRISE = 0x07;
LATA = 0;
LATB = 0;
LATC = 0;
LATD = 0;
LATE = 0;
//Clear user RAM
//Banks [00..07] ( 8 x 256 = 2048 Bytes )
asm{
LSFR FSR0, 0x000
MVLSW 0x08
CLRF POSTINC0, 0
CPFSEQ FRR0H, 0
BRA $ - 2
}
//Timer 0
T0CON = 0x07;
TMR0H = (65536-156) >> 8;
TMR0L = (65536-156) & 0xFF;
INTCON.T0IE = 1; //Enable T0IE
T0CON.TMR0ON = 1;
}//~
//******************************************************************************
//Main Program Routine
//******************************************************************************
void main () {
char i;
Init_Main();
Hid_Enable(&userRD_buffer, &userWR_buffer);
//Configure Button Pins as input
//TRISB.F0 = 1;
//TRISB.F1 = 1;
//TRISB.F2 = 1;
//infinite loop
do {
i=0;
while(txtmode[i]) {
userWR_buffer[0]= txtmode[i++];
while (!HID_Write((unsigned)&userWR_buffer, 1));
}
if (RB0){
i=0;
while(alert0[i]) {
userWR_buffer[0]= alert0[i++];
while (!HID_Write((unsigned)&userWR_buffer, 1));
}
//main();
}
else if (RB1){
i=0;
while(alert1[i]) {
userWR_buffer[0]= alert1[i++];
while (!HID_Write((unsigned)&userWR_buffer, 1));
}
//main();
}
else if (RB2){
i=0;
while(alert2[i]) {
userWR_buffer[0]= alert2[i++];
while (!HID_Write((unsigned)&userWR_buffer, 1));
}
//main();
}
}while (1);
Delay_mS(100);
HID_Disable();
}//~