![]() |
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2011
Bài gửi: 17
: |
giúp em chương trình bị lỗi này với
#include <16f877A.h>
#include <def_877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) /* ĐỊNH NGHĨA CÁC CHÂN VÀ PORT */ #define DIR_LEFT RC0 #define EN_LEFT RC1 #define DIR_RIGHT RC3 #define EN_RIGHT RC2 #define SENSOR PORTD /* KHAI BÁO CÁC CHƯƠNG TRÌNH CON */ void motor_left_forward(); void motor_left_reverse(); void motor_left_stop(); void motor_right_forward(); void motor_right_reverse(); void motor_right_stop(); void forward(); void reverse(); void stop(); void turn_left(); void turn_right(); /* CÁC CHƯƠNG TRÌNH CON */ // Động cơ trái chạy thuận void motor_left_forward() { DIR_LEFT=1; // chiều thuận EN_LEFT=1; // cho phép chạy } // Động cơ trái chạy ngược void motor_left_reverse() { DIR_LEFT=0; // chiều ngược EN_LEFT=1; // cho phép chạy } // Động cơ trái dừng void motor_left_stop() { EN_LEFT=0; // không cho phép chạy } // Động cơ phải chạy thuận void motor_right_forward() { DIR_RIGHT=1;// chiều thuận EN_RIGHT=1; // cho phép chạy } // Động cơ phải chạy ngược void motor_right_reverse() { DIR_RIGHT=0;// chiều ngược EN_RIGHT=1; // cho phép chạy } // Động cơ phải dừng void motor_right_stop() { EN_RIGHT=0; // không cho phép chạy } // Chạy thẳng void forward() { motor_left_forward(); motor_right_forward(); } // Chạy lùi void reverse() { motor_left_reverse(); motor_right_reverse(); } // Dừng void stop() { motor_left_stop(); motor_right_stop(); } // Quay trái void turn_left() { motor_left_forward(); motor_right_reverse(); // hoặc motor_right_stop(); } // Quay phải void turn_right() { motor_left_reverse(); // hoặc motor_left_stop(); motor_right_forward(); } /* 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; }} } chương trình dịch báo lỗi: Error 12 Undefined identifier RC0 Error 12 Undefined identifier TRISC Error 12 Undefined identifier PORTC |
![]() |
![]() |
![]() |
#2 |
Đệ tử 2 túi
Tham gia ngày: Aug 2009
Bài gửi: 36
: |
vào trong file def_16f877a định nghĩa lại trisc,......
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Sep 2011
Bài gửi: 17
: |
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 2 túi
Tham gia ngày: Aug 2009
Bài gửi: 36
: |
![]() #byte TRISC =0x87
#byte PORTC =0x07 #bit rC0 =0x07.0 chịu khó đọc datasheet mà cày đi chú |
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Sep 2011
Bài gửi: 17
: |
em mới tìm hiểu về con này. với lại em cũng không biết tra datasheet. em đang cần gấp nên lên đây hỏi các anh cho nhanh. anh có thể giả thích ý nghĩa của các số mà anh khai báo cho các chân và port đó giúp em đc ko
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 2 túi
Tham gia ngày: Aug 2009
Bài gửi: 36
: |
đó là địa các thanh ghi quy định trong datasheet của loại pic đang sử dụng, thế thôi
|
![]() |
![]() |
![]() |
|
|