![]() |
|
|
#3 |
|
Nhập môn đệ tử
Tham gia ngày: Jun 2007
Bài gửi: 9
: |
em cảm ơm anh namqn,em cũng đã đọc kỹ các hướng dẫn trong CCS và cũng đẫ thay đổi các option trong setup_power_pwm_pins(),mà vẫn không được anh ạ. anh xem đoạn code em viết có sai không nhé
Code:
#include <18F4431.h>
#include <DEF_18F4431.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, BRGH1OK)
int16 counter=0;
int16 soxung=0;
int16 period;
int1 BLINK=1;
int16 ch=16383;
#int_EXT
EXT_isr()
{
output_bit(PIN_D7, BLINK); //đo xung trên chân D7 xem đã vào ngắt chưa
counter++;
BLINK = !BLINK;
output_bit(PIN_D7, BLINK);
}
#INT_TIMER1
void ngat_timer() {
int i;
set_timer1(0xEC78); // sets timer to interrupt in 1ms
soxung=counter;
counter = 0; // reset counter
}
void main() {
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // setup interrupts
enable_interrupts(INT_TIMER1);
enable_interrupts(global);
enable_interrupts(int_ext);
ext_int_edge(H_to_L);
enable_interrupts(GLOBAL);
period = 4095; //Frequency = Fosc / (4 * (period+1) * postscale)
setup_power_pwm_pins (PWM_ODD_ON, PWM_ODD_ON, PWM_OFF, PWM_OFF);
setup_power_pwm (PWM_CLOCK_DIV_4|PWM_FREE_RUN, 1, 0, period, 0, 1, 0); //add dead time
while (true)
{
ch = getc();
set_power_pwm0_duty(ch);
set_power_pwm2_duty(ch);
putc(ch);
}
}
thay đổi nội dung bởi: falleaf, 29-06-2007 lúc 03:19 PM. |
|
|
|
|
|