Estou fazendo meu TCC em microcontroladores, e estou a muito tempo sem estuda-los, portanto, esqueci de muita coisa.
Estou recebendo quatro variáveis de um teclado e tenho que coloca-las em uma "rede" com 8 outros PICs. Estou conseguindo pegar as variáveis ok e montar um vetor para transmiti-lo, porém estou fazendo algo errado, pois quando ligo o Virtual Terminal de Protheus no pino TX, ele não mostra nada.
Código principal.
Obs.: As teclas "*" e "#", indicam, respectivamente, inicio e fim de transmissão
#include <master02.h> // Clica botão direito, configurações Rs232#include <LCD.C>#include "KBD.C"#int_EXT#use rs232(baud=9600,parity=N,xmit=PIN_C6,bits=8,stream=PORT1)Unsigned char tecla;Unsigned char tran[4];Unsigned int a=0;Unsigned int flag_a;void transmitir();void EXT_isr(void) {}void main(){ port_B_pullups(0xFF); lcd_init(); kbd_init(); transmitir(); disable_interrupts(INT_EXT); disable_interrupts(GLOBAL); lcd_gotoxy(1,1); lcd_putc("TCC-Arthr Barros"); while(TRUE) { tecla = kbd_getc(); if (tecla != '\0') { if(tecla == '*'){ tran[0]=tecla; lcd_gotoxy(1,2); lcd_putc(tecla); }else{ if(tecla >= '1' && tecla <= '5'){ tran[1]=tecla; lcd_gotoxy(2,2); lcd_putc(tecla); } else { } if(tecla>='7'&&tecla<='9'){ tran[2]=tecla; lcd_gotoxy(3,2); lcd_putc(tecla); } else{ if(tecla == '#'){ tran[3]=tecla; lcd_gotoxy(4,2); lcd_putc(tecla); transmitir(); } } } } }}void transmitir(){ a=0; while(a!=4){ printf(tran[a]); a++; }}
As configurações do PIC
#include <16F877A.h>#device adc=16#FUSES NOWDT //No Watch Dog Timer#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)#FUSES NOBROWNOUT //No brownout reset#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#use delay(clock=5000000)#use FIXED_IO( C_outputs=PIN_C6 )#use FIXED_IO( D_outputs=PIN_D7,PIN_D6,PIN_D5,PIN_D4,PIN_D3,PIN_D2,PIN_D1,PIN_D0 )#define TX PIN_C6
Estou usando o CCS pic C Compiler para fazer o trabalho.
Se puderem me clarear a mente, eu agradeço, meu tempo está acabando e ainda tenho muitos PICs para programar, alguns com PWM, e todos ainda tem que receber esse vetor de 4 posições.