xử lí da ta từ pc truyền xuống
mình đang làm giao tiếp pc <--> pic dùng vb6
đoạn code sau đơn giản chỉ khi nào nhận được data thì đảo trang thái portB.
việc nhận có xảy ra , nhưng nó lai ko thoát ngắt được (cứ đảo portB). mong mọi người giúp
///////////////////////////////////////////////////////////////
#include <16F877.h>
#device *= 16 ADC = 10 // su dung ADC 10 bit , ADC tu 0-1024
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=4000000,RESTART_WDT)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)//,stream=PC,errors)
#use fast_io(b)
#byte portb = 0x06
// có xảy ra ngắt nhưng cứ đảo port B//
int16 val_adc;
#INT_rda
void ngat_rs232()
{
portb = ~ portb; /// neu xay ra ngat rs_232 thi dao portb
}
//////////////////////////////////
void main()
{
set_tris_a ( 1 ) ;
set_tris_b ( 0x00 ) ;
portb = 255;
enable_interrupts ( INT_rda ) ; // data nhan tu rs 232 da san sang
enable_interrupts ( GLOBAL ) ; // cho phep ngat toan cuc
////// cho phep bien doi ad chan RA0 ///////////////
setup_adc(adc_clock_internal);
setup_adc_ports(AN0);
set_adc_channel(0);
delay_ms(10);
while(1)
{
Delay_ms(500);
val_adc = read_adc();
val_adc = (val_adc >> 2) ;
/// putc('a');// kenh 0
putc(val_adc);
}
}
thay đổi nội dung bởi: phandinh, 04-04-2009 lúc 12:39 PM.
|