Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите реализовать управление ДПТ на PIC16F876A
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Ronin777
Здравствуйте еще раз...сделал в Протеусе вот такую схемку

далее заливаю вот такой код
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 Ув. админы извините за флуд сразу не заметил этого раздела...
Ronin777
ну плзззЗЗ
kamil_yaminov
В PIC'ах не разбираюсь, но есть подозрение, что забыли ножку назначить как выход ШИМ сигнала.
@Ark
В ДШ есть рекомендуемая последовательность включения модуля CCP в режиме ШИМ. Нужно ее придерживаться.
В частности, сначала включают TMR2, а потом ССP в режиме ШИМ. А у Вас наоборот.
Ronin777
Цитата(@Ark @ Jan 23 2010, 13:04) *
В ДШ есть рекомендуемая последовательность включения модуля CCP в режиме ШИМ. Нужно ее придерживаться.
В частности, сначала включают TMR2, а потом ССP в режиме ШИМ. А у Вас наоборот.


не помогло...
@Ark
Цитата
не помогло...

Схема у Вас непонятная какая-то... Да и программа....
Объясните сначала хотя бы на словах, что хотите получить?
Где питание? Где "обвеска" PIC-а? Где кварц? Или от внутреннего генератора работаете? Но его вроде бы нет в этом пике. Почему MCLR в воздухе? В общем слишком много вопросов...
Не знаю как в симуляторе, "в железе" это работать не будет. Потому что не должно...
Ronin777
Цитата(@Ark @ Jan 23 2010, 19:11) *
Схема у Вас непонятная какая-то... Да и программа....
Объясните сначала хотя бы на словах, что хотите получить?
Где питание? Где "обвеска" PIC-а? Где кварц? Или от внутреннего генератора работаете? Но его вроде бы нет в этом пике. Почему MCLR в воздухе? В общем слишком много вопросов...
Не знаю как в симуляторе, "в железе" это работать не будет. Потому что не должно...


это симулятор, "обвеска" идет программная (Proteus), я вроде разобрался в чем проблема, у меня не получилось настроить ШИМ контроллера (скорее всего это неполадка в Proteus) поэтому пришлось реализовать ШИМ программно, вроде все получилось.
А идея программы заключается в том, что мы подаем на аналоговый вход с датчика температуры сигнал и в зависимости от этого сигнала управляем двигателем, чем больше напряжение на аналоговом входе тем выше скорость двигателя.
Будет ли это работать в железе никому не интересно, боюсь препод и в СИ особо не разбирается, но надеюсь он меня пойметsmile.gif
Ronin
Цитата
Будет ли это работать в железе никому не интересно, боюсь препод и в СИ особо не разбирается, но надеюсь он меня поймет


Товарищ самурай, вы эт бросайте пренебрегать железом smile.gif Железо наше всё ))))))))
Tanya
Цитата(Ronin777 @ Jan 24 2010, 01:08) *
А идея программы заключается в том, что мы подаем на аналоговый вход с датчика температуры сигнал и в зависимости от этого сигнала управляем двигателем, чем больше напряжение на аналоговом входе тем выше скорость двигателя.

Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).
Ronin777
Цитата(Tanya @ Jan 26 2010, 14:27) *
Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).

поставил MOSFET...но особо не помогло)...
Александр Куличок
Цитата
Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).

В ТЗ нет пункта "поддерживать скорость врещения в зависимости от изменения нагрузки" smile.gif Поэтому это лишнее. Тем более, в лабораторной работе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.