PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 02-05-2009, 02:11 AM   #1
mocdailam
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 18
:
Send a message via ICQ to mocdailam
Unhappy lỗi nhận RS232

mấy anh kiểm tra dùm em với. em muốn nhận một string từ máy lưu vào text[] không biết lỗi ở đâu mà nó không nhận đúng.


#include <18F4550.h>
#device *=16 ADC=8
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=20M)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,bits=8)
...

#int_rda
void rcv_data()
{
char key;
int8 ii=0;
disable_interrupts(INT_RDA);
disable_interrupts(INT_TIMER0);
// gets(text);

key = getc();
chedo = key;// phan tu dau tien cua goi tin la phan tu chon che do
tt=2;
do
{
//if(kbhit())

key = getc();
putc(key);
text[ii]=key;
ii++;
if ( ii>text_max) break;

}while (key !='\0');
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
}
...
//ham main()
void main()
{
int8 g,n,itext=0,ich=0,demp=0,k,kt=1;
set_tris_b(0);
set_tris_d(0);
set_tris_c(0b10000001);
setup_timer_0( RTCC_INTERNAL |RTCC_DIV_64|RTCC_8_BIT);
set_timer0(0);

enable_interrupts(INT_RDA);
enable_interrupts(global);
enable_interrupts(int_timer0);
mocdailam vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-05-2009, 11:26 PM   #2
mocdailam
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 18
:
Send a message via ICQ to mocdailam
có ai giúp mình với. sắp die rồi!
mocdailam vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-05-2009, 12:06 PM   #3
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
code trên có chạy được đâu mà bạn bảo là nhận không đúng
bạn khai báo phần cứng như sau. thạch anh chạy 20M
#include<18f4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CP UDIV1,VREGEN,NOBROWNOUT
#device 18F4550*=16 ADC=10
#use delay(clock=48000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
mỗi khi giao tiếp, PC chỉ truyền xuống 1 byte. khi có ngắt RDA chương trình (PIC) nhảy vào ngắt xử lý ctr ngắt (nhận 1 byte từ PC gửi xuống) sau đó nhảy về vị trí củ. khi có ngắt thì nhảy vào xử lý tiếp ctr ngắt để nhận 1 byte khác từ PC gửi xuống. chứ nó không nằm ở chương trình ngắt RDA để nhận toàn bộ chuỗi từ PC gửi xuống. dó đó phần do ... white() của bạn để lập lại cho đến khi nhận byte stop là không đúng.
bạn xem lại lý thuyết về các ngắt nhé
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2009, 05:45 PM   #4
mocdailam
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 18
:
Send a message via ICQ to mocdailam
cám ơn bạn nhiều!

thay đổi nội dung bởi: mocdailam, 05-05-2009 lúc 05:53 PM.
mocdailam vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-05-2009, 10:17 PM   #5
thienkien
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 7
:
ch­ương trình giao tiếp của mình truyền nhận đúng khi khai báo tần số thạch anh =tần số thạch anh thực . Nhưng khi khai báo ép xung lên (dùng hspll) thì nhận sai ký tự ??có khi nào phải tính lại baudrate ko nhi???.ai từng gặp tình huống này giúp mình!!! gấp gấp nhé
thienkien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2009, 12:58 PM   #6
auduongphong
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 6
:
Sao bác không khai báo đúng đi cho nó chạy.
Sao tự dưng làm khó mình vậy ?? Hêhê
Đây là một lỗi thường hay xảy ra khi giao tiếp với máy tính.
Tần số thạch anh (trong chương trình)==== tần số thực của thạch anh trên mạch.
auduongphong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 04:35 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam