![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Jun 2010
Bài gửi: 2
: |
Xin các bạn giúp cách đọc tín hiệu PWM
Chào các bạn !
mình vừa viết 1 chương trình như thế naỳ cho con PIC16F88: Input A0: tín hiệu PWM có đọ rộng xung từ 1ms đến 2ms (tín hiệu điều khiển servo RC) Out Put B0,B1...B7: ứng với mỗi độ rông xung em sẽ xuất LED khác nhau. vi dụ: int dW = 1,1 ;//(đọ rộng xung) dw = 1,1 em xuất LED B0; dw = 1,2 em xuất LED B0,B1;.....dw = 1,8 em xuất LED B0,B1,B2,B3,B4,B5,B6,B7; code em viết như thế này ,nó chỉ chạy đoạn code TEST PIC,em không biết chương trình tính sai chổ nào mà LED không sáng gì cả ! mong các bạn giúp cho. Cám ơn các bạn #include <16F88.h> #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz) #FUSES PUT //Power Up Timer #FUSES MCLR //Master Clear pin enabled #FUSES BROWNOUT //Reset when brownout detected #use delay(clock=20000000) #byte portb=0x06 INT8 i,indata,indatb,templateA; INT16 TimerL,dx; double delta; INT8 ledON[8]={0b00000001,0b00000011,0b00000111,0b00001111,0b00 011111,0b00111111,0b01111111,0b11111111}; //------------------------ void main(){ setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); templateA= 0b00000001 ; // input 1 channels //code TEST PIC set_tris_b(0); for(TimerL=1;TimerL<=5; TimerL++)//để biết chăc chắn code đã chạy tốt { portb = 0b00000000; delay_ms(200); portb = 0b11111111; delay_ms(200); } //code TEST PIC delta = 125;//=(2000-1000)/8Led dx = 1000; portb = 0b00000000; do { timerL=0; do { } while (! input(pin_A0) );//doc tin hieu low do { TimerL ++;//dem do rong xung delay_us(1); //delay_cycles(5);//5*0.2us = 1us } while ( input(PIN_A0) );//doc tin hieu high //TimerL > = 1000 && TimerL <= 2000 có đúng không các bạn ? for(i =8;i >=0 ;i--) { if(TimerL >= dx + (double)delta*i ) { portb = ledON[i-1]; break; } } } while (true); } thay đổi nội dung bởi: ldhung, 16-10-2010 lúc 09:54 AM. Lý do: thêm file |
![]() |
![]() |
![]() |
|
|