à mình hiểu rồi,phải đặt lệnh goto label trong một hàm i f
cứu tôi với
Collapse
X
-
-
Các bạn à , mình muốn dùng 1 nút nhấn , nhấn lần 1 thì thực hiện cộng việc 1,nhấn lần 2 thì thực hiện công việc 2, nhấn lần 3 thì thực hiện công việc 3.Mình chưa biết giải thuật thế nào .Mong các bạn chỉ bảo.
Comment
-
nhưng sau khi nhất lần 3 thì chip có cần reset lại không? bạn có thể dùng hỏi vòng để kiểm tra trạng thái trên một chân nào đó được nối tới nút nhấn của bạn, khi có một thay đổi trạng thái tức là nút được nhấn thì bạn dùng một biết đếm (count chẳng hạn) tăng lên một. Sau đó dùng if kiểm tra nếu count=1 thì thực hiện công việc 1, count=2 thực hiện công việc 2...
Comment
-
Bạn à mình thấy lệnh set_tris_b(0x00) đâu có liên quan gì tới #use fast_io(b).Mình làm nhiều ví dụ và thấy vậy.Bạn có thể cho mình thấy ví dụ nào liên quan không .
Comment
-
Các bạn cho mình hỏi : mình dùng 1 nút nhấn(chân RB0) ,khi nhấn lần 1 thì thực hiện chương trình 1,nhấn lần 2 thì thực hiện chương trình 2,mình dùng ngắt RB0.Mình không biết là phần khai báo ngắt có vấn đề gì không ? Mong các bạn chỉ giúp !MÌnh làm cả đêm rồi mà không chạy được.Code:#include "C:\Program Files\PICC\Examples\hienthiso.h" #include "C:\Program Files\PICC\Drivers\LCD.C" #use delay(clock=20000000) #byte portD=0x08 #byte portB=0x06 #bit RB0=0x06.0 #use fast_io(b) #use fast_io(d) int8 mode,i,j; #INT_EXT void ext_isr() { mode++; delay_ms(1); if(mode==3) { mode=0; } } void program1(); void program2(); void main() { mode=0; set_tris_b(0b00000001); portB=0x00; set_tris_d(0); portD=0x00; enable_interrupts(int_ext); ext_int_edge(H_TO_L); enable_interrupts(GLOBAL); while(1) { switch(mode) { case 1:program1();break; case 2:program2();break; } } } void program1() { if(mode==1) { lcd_putc('\f'); for(i=0;i<5;i++) { lcd_init(); lcd_gotoxy(1,1); lcd_putc("NGUYEN VAN THANH"); delay_ms(20); lcd_gotoxy(1,1); lcd_putc('\f'); delay_ms(20); } } } void program2() { if(mode==2) { lcd_putc('\f'); for(j=0;j<5;j++) { lcd_init(); lcd_gotoxy(1,1); lcd_putc("HOANG THI HOAI MY"); delay_ms(20); lcd_gotoxy(1,1); lcd_putc('\f'); delay_ms(20); } } }Attached FilesLast edited by namqn; 05-01-2009, 05:29 AM.
Comment
-
Những khai báo này là dẫn hướng cho trình biên dịch. Bạn có thể sẽ không "cảm nhận" được sự khác biệt.Nguyên văn bởi dientudong View PostBạn à mình thấy lệnh set_tris_b(0x00) đâu có liên quan gì tới #use fast_io(b).Mình làm nhiều ví dụ và thấy vậy.Bạn có thể cho mình thấy ví dụ nào liên quan không .
Tham khảo chi tiết thêm phần Help của CCS.More friends more foods
Comment
-
-
-set_tris_b(0x00) là lấy port b là ngõ ra, giả sử khi đọc encoder hoặc đọc adc ngõ vào kô set làm ngõ vào sao mà chạy,...(theo em là như vậy kô biết các bác như nào)
- #20 ổ chổ nào đâu kô thấy ở đâu hít
Comment
-
-
-
- trong filelcd.rar có hình mô phỏng ah
- #use fast_io(b) khi trong chương trình dùng các lệng như output_low(),...nó chỉ set chỉ với lệnh, nhanh hơn so với khi không dùng chỉ thị này (trích tài liệu ccs)
- trong hàm main() bạn phải dùng hàm set_tris_x() chỉ rõ chân vào ra
-- có nghĩa là sao, bạn có thể bỏ kô ảnh hưởng tới chương trình, nhưng phải có dòng lệnh set_tris_x() để chỉ rõ chân vào ra cho pic hỉu, kô có thì chương trình kô chạy
Comment
-
-
-
-
code của bạn chưa chạy hay sao, bạn đã nạp và mô phỏng chưa, ở đây mình kô có điều kiện để test thử trực tiếp,
Comment
Comment