PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-09-2011, 12:14 AM   #1
lionking
Đệ tử 3 túi
 
lionking's Avatar
 
Tham gia ngày: May 2011
Bài gửi: 47
:
Trích:
Nguyên văn bởi ngosythuat View Post
à cho tớ hỏi về cái tài liệu bạn gửi đó sao đầu vào cảm biến là portD sao trong chương trình lại viết
/* CHƯƠNG TRÌNH CHÍNH */
void main ()
{
TRISC=0x00; // PORTC là ngõ ra ( động cơ)
TRISD=0x00; // PORTD là ngõ vào (cảm biến quang)
PORTC=0x00; // Khởi tạo giá trị ban đầu 0x00 cho PORTC
while(1)
{
switch (SENSOR)
{
case 0b00011000: forward(); break;
case 0b00001100: turn_left(); break;
case 0b00000110: turn_left(); break;
case 0b00000011: turn_left(); break;
case 0b00000001: turn_left(); break;
case 0b00110000: turn_right(); break;
case 0b01100000: turn_right(); break;
case 0b11000000: turn_right(); break;
case 0b10000000: turn_right(); break;
}}
}

viết vầy gọn hơn

while(1)
{

if( SENSOR == 24 )
{
forward() ;
}
else
{
if( SENSOR < 24 )
{
turn_left();
}
else
{
turn_right();
}

}
}
lionking vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2011, 09:14 AM   #2
ngosythuat
Đệ tử 1 túi
 
Tham gia ngày: Sep 2011
Bài gửi: 17
:
Trích:
Nguyên văn bởi lionking View Post
viết vầy gọn hơn

while(1)
{

if( SENSOR == 24 )
{
forward() ;
}
else
{
if( SENSOR < 24 )
{
turn_left();
}
else
{
turn_right();
}

}
}
viết thế được hả bạn
ngosythuat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2011, 09:46 AM   #3
chairman_t
Đệ tử 2 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 36
:
bạn à, nếu ngõ vào cảm vào biến thì trisd = 0xff, thứ hai nữa : chẵn hạn khi lệch trái nhiều 00000001 và lệch trái nhẹ hơn là 00000100 thì turnright ở 2 trường hợp này tốc độ của bánh trái sẽ khác nhau.
chairman_t vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2011, 10:30 AM   #4
ngosythuat
Đệ tử 1 túi
 
Tham gia ngày: Sep 2011
Bài gửi: 17
:
Trích:
Nguyên văn bởi chairman_t View Post
bạn à, nếu ngõ vào cảm vào biến thì trisd = 0xff, thứ hai nữa : chẵn hạn khi lệch trái nhiều 00000001 và lệch trái nhẹ hơn là 00000100 thì turnright ở 2 trường hợp này tốc độ của bánh trái sẽ khác nhau.
tớ đang làm chương trình con quay trái cho robot tớ chỉ dùng 6 cảm biến từ 1 đến 6 thôi, còn con 0 và 7 để làm việc khác. bạn có thuật toán nào hay chỉ cho tớ với
ngosythuat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2011, 12:34 PM   #5
chairman_t
Đệ tử 2 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 36
:
thế này nhé khi đến ngã tư cần rẽ trái(giả sử bit6=bên trái), cho bánh phải quay thuận ,bánh trái quay ngược đồng thời bit6 đi qua vạch( đèn cảm biến của bạn sẽ sáng rồi tắt) dùng While(bit6==1) chờ nó tắt, cho 2 bánh dừng, thế thôi.
chairman_t vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2011, 03:09 PM   #6
lionking
Đệ tử 3 túi
 
lionking's Avatar
 
Tham gia ngày: May 2011
Bài gửi: 47
:
Trích:
Nguyên văn bởi ngosythuat View Post
viết thế được hả bạn
0b00011000 tương đương với 24 ở hệ thập phân , nên nấy giá trị 24 làm mốc để so sánh
lionking 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à 07:23 PM.


Đượ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