проблемма с PIC16F873A

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Аватара пользователя
DSssss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср авг 07, 2013 15:10:41
Откуда: Воронеж

проблемма с PIC16F873A

Сообщение DSssss »

Здравствуйте! у меня возникла проблемка с микроконтроллером PIC16F873A! Сразу оговорюсь: это мой первый опыт в програмировании, так что если дело в програмировании мк то обясняйте как можно подробнее))
Ну... в общем решил я сделать регулятор громкости на энкодере (схема взята с этого сайта http://radiokot.ru/circuit/audio/other/21/ )для програмирования PICа сделал программатор Extra-PIC ( схема с сайта лабкит http://www.labkit.ru/html/programmators_shm?id=72 ). я запрограмировал PIC, всё собрал как на схеме, итог: НЕ РАБОТАЕТ!((( програматор рабочий, проверял мультиметром по статье с лабкита http://www.labkit.ru/userfiles/file/p ... rs/Extra-PIC/Metodika.rar , мк прошол тестирование, и для верности я прочитал его, вроде с кодом всё правильно. платы проверил по 3 раза всё подключено правильно НО Я НЕ СТАВИЛ ДИСПЛЕЙ И ПОДКЛЮЧИЛ ТОЛЬКО ОДИН ЭНКОДЕР по причине: нет средств!)) возможно что регулятор не работает из-за недостающих устройств??? это мой первый мк, думал что все заработает, а тут.... ВСЕМ ОТКЛИКНУВШИМСЯ ОГРОМНОЕ СПАСИБО!!
Реклама
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: проблемма с PIC16F873A

Сообщение otest »

мк прошол тестирование, и для верности я прочитал его, вроде с кодом всё правильно
Что такое тестирование МК?
Читать его не обязательно для проверки правильности прошивки есть сравнение с буфером.
Тогда слово "вроде" можно будет не писать.
платы проверил по 3 раза всё подключено правильно
Нам это не известно.
возможно что регулятор не работает из-за недостающих устройств?
Каких устройств?
Если дисплея ,то он на работу не влияет. Как определил что не работает без дисплея?
Реклама
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2359
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: проблемма с PIC16F873A

Сообщение Dmitry Dubrovenko »

otest писал(а):Если дисплея ,то он на работу не влияет
Вообще-то, может и влиять, в зависимости от алгоритма управления.
Но, в данной схеме, точно не влияет.
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
DSssss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср авг 07, 2013 15:10:41
Откуда: Воронеж

Re: проблемма с PIC16F873A

Сообщение DSssss »

otest писал(а):
Как определил что не работает без дисплея?
я имел в виду что неработает вообще :( когда подаёш сигнал на вход TDA7448 на выход проходит сигнал громкостью где-то в половину меньше входного (при отключённом питании PIC16F873A и TDA7448!) а когда подаёш напряжение на мк, в колонках звук пропадает, но когда крутиш энкодер эсть щелчки... :cry: возможно ли что не работает из-за недостающих энкодеров???
Ток своих не бьёт.
Реклама
Эиком - электронные компоненты и радиодетали
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: проблемма с PIC16F873A

Сообщение otest »

возможно ли что не работает из-за недостающих энкодеров???
Если в программе есть опрос энкодеров и нет обработки его неисправности, то программа зациклится и работать не будет.
Реклама
Аватара пользователя
DSssss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср авг 07, 2013 15:10:41
Откуда: Воронеж

Re: проблемма с PIC16F873A

Сообщение DSssss »

otest писал(а):Если в программе есть опрос энкодеров и нет обработки его неисправности, то программа зациклится и работать не будет.
не подскажеш, какие это команды? :dont_know:
Ток своих не бьёт.
Реклама
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: проблемма с PIC16F873A

Сообщение vovik15 »

попробуй поставить все энкодеры
Аватара пользователя
DSssss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср авг 07, 2013 15:10:41
Откуда: Воронеж

Re: проблемма с PIC16F873A

Сообщение DSssss »

хорошо, куплю и поставлю на днях...
Ток своих не бьёт.
Аватара пользователя
DSssss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср авг 07, 2013 15:10:41
Откуда: Воронеж

Re: проблемма с PIC16F873A

Сообщение DSssss »

В общем, не получается :( ... Энкодеры поставил но, при подключении к регулятору звука (при отключённом питании) громкость выхода в половину мньше, а при подаче питания звук резко пропадает но через 2 секунды плавно востанавливается и при этом в колонках слышны тихие щелчки. я так понимаю это работает функция "плавный старт". пробовал "тыкать" на кнопки (громкость/баланс, mute, st buy, резерв) при этом: нажимая на mute громкость пропабает если кнопку удерживать, так же и с st buy.
может убрать из кода некоторые комманды?
unsigned char ir; // переменная под ИК-команды (я не ставил ик)
enc (); // функция обслуживания энкодеров
ird (); // функция ИК-приемника
// ====================
// === функция обслуживания энкодеров ===
// ====================
void enc (void){
if (mut == 0){ // проверка на mute
if (mst == 0){ // начало проверки на мастер громкость

// Front_vol
if ((enc1_act == 1)&(bal == 0))
{rez = 1;
if (enc1_napr == 0) max();
if (enc1_napr == 1) min();
enc1_act = 0;}


// Rear_vol
if ((enc2_act == 1)&(bal == 0))
{rez = 2;
if (enc2_napr == 0) max();
if (enc2_napr == 1) min();
enc2_act = 0;}

// Center
if (enc3_act == 1)
{rez = 3;
if (enc3_napr == 0) max();
if (enc3_napr == 1) min();
enc3_act = 0;}

// Subwoofer
if (enc4_act == 1)
{rez = 4;
if (enc4_napr == 0) max();
if (enc4_napr == 1) min();
enc4_act = 0;}

// Front_bal
if ((enc1_act == 1)&(bal == 1))
{rez = 5;
if (enc1_napr == 0) max();
if (enc1_napr == 1) min();
enc1_act = 0;}

// Rear_bal
if ((enc2_act == 1)&(bal == 1))
{rez = 6;
if (enc2_napr == 0) max();
if (enc2_napr == 1) min();
enc2_act = 0;}

} // продолжение проверки на мастер громкость
else // === МАСТЕР ГРОМКОСТЬ ===
{ // продолжение проверки на мастер громкость
rez = 7;

if (enc1_act == 1){
if (enc1_napr == 0) max();
if (enc1_napr == 1) min();
enc1_act = 0;}

if (enc2_act == 1){
if (enc2_napr == 0) max();
if (enc2_napr == 1) min();
enc2_act = 0;}

if (enc3_act == 1){
if (enc3_napr == 0) max();
if (enc3_napr == 1) min();
enc3_act = 0;}

if (enc4_act == 1){
if (enc4_napr == 0) max();
if (enc4_napr == 1) min();
enc4_act = 0;}
} // конец проверки на мастер громкость

} // конец проверки на mute
} // конец функции


// ==========
// === функция ИК-приемника ===
// ==========
unsigned char ir; // переменная под ИК-команды
unsigned char ir_pro; // проверочная перменная ИК-команд
unsigned int ir_ta; // таймаут ДУ

void ird (void){ // начало функции
if(ir!=0){ // начало обработки ИК
if(ir_pro==ir){ // перепроверка команды
GIE = 0;
if(mut == 0){ // разрешено, если st-by = 0
if(ir==1){rez=5; rezim ();} // 1 - front_vol
if(ir==2){rez=1; rezim ();} // 2 - rear_vol
if(ir==3){rez=5; rezim ();} // 3 - center
if(ir==4){rez=4; rezim ();} // 4 - subwoofer
if(ir==5){rez=3; rezim ();} // 5 - front_bal
if(ir==6){rez=4; rezim ();} // 6 - rear_bal
if(ir==7){rez=6; rezim ();}
if(ir==8){rez=2; rezim ();}
if(ir==9){rez=6; rezim ();}
if(ir==16){max();} // вправо
if(ir==17){min();} // влево
if(ir==32){if (ir_ta==0) {rez++;if(rez>6)rez=1;rezim();}} // вверх
if(ir==33){if (ir_ta==0) {rez--;if(rez<1)rez=6;rezim();}} // вниз
} // конец проверки на mute
if(ir==13){if (ir_ta==0) mute();} // mute
if(ir==12){if (ir_ta==0) stby();} // standby

} // конец перепроверки команды
ir_pro=ir; ir=0;
ir_ta = 0x8ff; // "зарядили" таймаут ДУ
GIE = 1;
} // конец обработки ИК
if(ir_ta!=0) ir_ta--; // "разряжаем" таймаут ДУ (вне функции ИК!)
} // конец функции
Ток своих не бьёт.
Ответить

Вернуться в «PIC»