Pages: [1]   Go Down
Print
Author Topic: ช่วยด้วยคับPWM 16F877 ADC  (Read 7817 times)
0 Members and 3 Guests are viewing this topic.
mink50
มาใหม่
*
Offline Offline

Posts: 9


Email
« on: September 20, 2011, 08:24:04 PM »

ช่วยด้วยคับ ทำไมPICส่งผลไปแค่ครั้งเดียวอ่ะคับ คือมอเตอร์ผมมันหมุนคงที่อ่ะคับ PWM ไม่เปลี่ยนค่าเลย ผมต้องReset PICตลอดมันถึงจะส่งค่าไป
คือมันส่งค่าไปครั้งเดียวอ่ะคับ อยากให้มันส่งค่าไปตลอด จะเขียนโค้ดยังไงอ่ะคับ


#include <16F877.h>
#use delay(clock=1000000)
#fuses HS
#fuses NOCPD
#fuses NOWDT
#fuses NOPROTECT
#define  TxD         PIN_A0   
#define  RxD         PIN_A1   

void main(void)
{
int Dat;
    setup_ccp1(CCP_PWM);   // Configure CCP1 as a PWM
    setup_timer_2(T2_DIV_BY_4, 249, 1);
    set_pwm1_duty(Dat);
   
    setup_port_a(AN0);
      setup_adc(ADC_CLOCK_INTERNAL);
      set_adc_channel(0);

    while( TRUE ){
    Dat=read_adc();   //Loop here
    }
}
 
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #1 on: September 24, 2011, 04:57:09 PM »

ช่วยด้วยคับ ทำไมPICส่งผลไปแค่ครั้งเดียวอ่ะคับ คือมอเตอร์ผมมันหมุนคงที่อ่ะคับ PWM ไม่เปลี่ยนค่าเลย ผมต้องReset PICตลอดมันถึงจะส่งค่าไป
คือมันส่งค่าไปครั้งเดียวอ่ะคับ อยากให้มันส่งค่าไปตลอด จะเขียนโค้ดยังไงอ่ะคับ


#include <16F877.h>
#use delay(clock=1000000)
#fuses HS
#fuses NOCPD
#fuses NOWDT
#fuses NOPROTECT
#define  TxD         PIN_A0  
#define  RxD         PIN_A1  

void main(void)
{
int Dat;
    setup_ccp1(CCP_PWM);   // Configure CCP1 as a PWM
    setup_timer_2(T2_DIV_BY_4, 249, 1);
    
    
    setup_port_a(AN0);
      setup_adc(ADC_CLOCK_INTERNAL);
      set_adc_channel(0);

    while( TRUE ){
    Dat=read_adc();   //Loop here
    set_pwm1_duty(Dat);
    }
}
 
« Last Edit: September 29, 2011, 10:07:44 AM by s_engine » Logged
samarters
Jr. Member
**
Offline Offline

Posts: 31


Email
« Reply #2 on: September 26, 2011, 09:47:19 AM »

ทำไมกำหนด Tx Rx เป็น A0 A1
ของตัว 16F877 มันเองอยู่ C6 C7 ไม่ใช่หรือ แล้วจะอ่าน ADC ได้ไหมล่ะนั่น
Logged
Pages: [1]   Go Up
Print
 
Jump to: