PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Xin các bạn giúp cách đọc tín hiệu PWM (http://www.picvietnam.com/forum/showthread.php?t=7182)

ldhung 16-10-2010 09:42 AM

Xin các bạn giúp cách đọc tín hiệu PWM
 
1 Attachment(s)
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);

}


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam