Chào các bạn!
Mình muốn nhận một chuỗi dữ liệu truyền tiếp nối tiếp với tốc độ là 2400 bit/s ( 64bit )
Ví dụ: 11111111 10000001 100000000000000011001010101010010111010011001000
tương đương: 255_129_128......
Mình sử dụng lệnh getc() trong trình dịch CCS và muốn hiển thị ra từng byte.
Mong các bạn giúp đỡ.
Chương trình mình viết nó nhận cứ nhảy loạn lên vậy:
- Chân nhận là Pin_C7: RX
- LCD16x2:
//================================================== =============
Mình không hiểu khi nhận một chuỗi 8byte thì getC() nó nhận như thế nào?
}
Mình muốn nhận một chuỗi dữ liệu truyền tiếp nối tiếp với tốc độ là 2400 bit/s ( 64bit )
Ví dụ: 11111111 10000001 100000000000000011001010101010010111010011001000
tương đương: 255_129_128......
Mình sử dụng lệnh getc() trong trình dịch CCS và muốn hiển thị ra từng byte.
Mong các bạn giúp đỡ.
Chương trình mình viết nó nhận cứ nhảy loạn lên vậy:
- Chân nhận là Pin_C7: RX
- LCD16x2:
//================================================== =============
Code:
#include <16F877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
unsigned int dataArray[10];
//------------------------------------------------------------------------------------------------
#INT_RDA
void isr_serial_rcv()
{
disable_interrupts(INT_RDA);
[I]if(getc()==255)
{
while(getc()==255);
for (i=0; i<9; i++)
{
dataArray = getc();
}
lcd_putcmd(0xc2);
printf(lcd_putchar,"%u",dataArray[1]);
}
enable_interrupts(INT_RDA);
}
Comment