реклама на сайте
подробности

 
 
> Помогите реализовать управление ДПТ на PIC16F876A
Ronin777
сообщение Jan 21 2010, 19:06
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



Здравствуйте еще раз...сделал в Протеусе вот такую схемку

далее заливаю вот такой код
CODE
#include<pic.h>

#define START_FUN 768
#include "delay.h"


int adc_res;
int pwm_val;

main(){

TRISA =0xFF;
TRISC = 0;
/******** настройка ШИМ *********/
T2CON = 0x01; //TMR2 выходной делитель 1:1, предделитель - 1:1
PR2 = 0xFF; //длительность ШИМ
CCPR1L = 0;
CCP1CON= 0x0C; //включить ШИМ
TMR2ON = 1; //TMR2 включить
/******** настройка АЦП **********/
ADCON0= 0x81; //модуль включен, Fosc/32
ADCON1= 0x8E; //выравнивание вправо, 1 вход аналоговый
ADIF = 0; //сбросить флаг прерывания от АЦП
DelayUs(40);
ADGO = 1; //начать преобразование

while (1){

if( ADIF ){
ADIF = 0;
adc_res = ADRESH * 256 + ADRESL;
if(adc_res > START_FUN){
pwm_val = (adc_res - START_FUN) * 5;
CCPR1L=(char)(pwm_val>>2);
CCP1CON=((char)(pwm_val<<4)&0x30) | 0x0C;
}
else{
pwm_val = 0;
CCPR1L=(char)(pwm_val>>2);
CCP1CON=((char)(pwm_val<<4)&0x30) | 0x0C;
}
DelayUs(40);
ADGO = 1;
}
}
}

проблема заключается в том что на PORTC не генерируется ШИМ...он постоянно остается 0...что не так сделал подскажите пожалуйста...

PS Ув. админы извините за флуд сразу не заметил этого раздела...

Сообщение отредактировал rezident - Jan 23 2010, 12:13
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 23:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016