Escolar Documentos
Profissional Documentos
Cultura Documentos
void initialize();
void clear_usart_errors_inline();
void loadTXREG(int);
int receiveTransmission();
void triptastic(void);
void pulseRed(void);
void pulseGreen(void);
void pulseBlue(void);
int dummy;
int index;
unsigned char text1[] = {"Puuuuuurty "};
int red=1;
int blue=1;
int green=1;
int holder;
main()
{
initialize();
index = 0;
while(text1[index] != 0) // while text1[index] is'nt zero
loadTXREG(text1[index++]); // write message 1
__delay_ms(100);
while(1){
triptastic();
}
}
void triptastic(){
for(int r = 0; r < red; r++)
pulseRed();
for(int r = 0; r < green; r++)
pulseGreen();
for(int r = 0; r < blue; r++)
pulseBlue();
}
void pulseRed(){
RED=1;
__delay_us(DELAY);
RED=0;
__delay_us(DELAY);
}
void pulseGreen(){
GREEN=1;
__delay_us(DELAY);
GREEN=0;
__delay_us(DELAY);
}
void pulseBlue(){
BLUE=1;
__delay_us(DELAY);
BLUE=0;
__delay_us(DELAY);
}
void initialize (){
TRISA=0b00000000;
TRISB=0b00000110; //TRISB<1> and TRISB<2> should both be
set as inputs
INTCON=0b01000000;
RCIF=0;
TXIF=0;
PIE1=0b00100000;
PORTA=0x00;
PORTB=0x00;
int receiveTransmission(){
while(!RCIF)
{
CLRWDT();
clear_usart_errors_inline();
}
return RCREG;
}
void clear_usart_errors_inline(){
if (OERR)
{
TXEN=0;
TXEN=1;
CREN=0;
CREN=1;
}
if (FERR)
{
dummy=RCREG;
TXEN=0;
TXEN=1;
}
}
if(RCIF){
dummy = RCREG;
if(dummy==52 ) //r
red++;
else if(dummy == 53) // b
green++;
else if (dummy == 54)
blue++;