|
ATmega16 + PT2322 + PT2323, Пишем программу в Code Vision AVR... |
|
|
|
Mar 4 2013, 21:59
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Здравствуйте я ученик, и ничего не понимаю в написание программы для ATmega16. Надеюсь здесь я найду людей которые мне смогут помочь. Суть такова у меня есть печатка приложил ниже. (уже сделана, распаяна) Помогите начать с нуля, написать прошивку. Сперва надо сказать то, что будет делать программа и собственно ATmega: -Управлять аудио процессорами по интерфейсу I 2C. (Аудио процессоры PT-2322 + PT2323) -Выводить состояние параметров и управления на LCD Winstar 16x2. -Сигнализировать свечением диодов о выбранных параметрах. -Управляться пультом по протоколу RC-5 -Управляться 5 кнопками (Sesect, 2.1, 5.1, AC-3, StandBy). C чего начать я даже и не знаю. Ниже приложил материалы которые у меня есть.(включая исходник готовой прошивки но с пультом в котором работают только три кнопки, нет регулировки тембром, и физических кнопок.
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(60 - 74)
|
Mar 21 2013, 20:04
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Я в каждом после выкладываю свежий, с исправлением ошибок, держите
|
|
|
|
|
Mar 21 2013, 20:16
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Цитата(artkam @ Mar 21 2013, 22:06)  Так в нем нет исправлений, которые внес я... Поверьте, те моменты что я подправил, очень важны... Так что замените исходник в Вашем проекте моим и пересоберите... ?? спасибо, а где он
|
|
|
|
|
Mar 21 2013, 20:35
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Вы имеете ввиду Код Код i2c_start(); i2c_write(ADDR_2322); i2c_write(ACK); i2c_write(tsss &= ~0x02); //отключает байпасс регулятора тембра i2c_write(ACK); i2c_stop(); Изменил исходник, проверю на выходных, атмега сгорела из за халатности. Ну я так понял должно работать? А в чем физическая суть?
Сообщение отредактировал Дмитрий(846) - Mar 21 2013, 20:35
|
|
|
|
|
Mar 21 2013, 20:38
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 14-09-10
Из: Уфа
Пользователь №: 59 479

|
Цитата(Дмитрий(846) @ Mar 22 2013, 00:57)  А в чем физическая суть? Присмотритесь внимательнее, изменения коснулись и функции Mute()! Физическая сущность в том, что в микросхеме предусмотрена возможность посылать сигнал мимо темброблока, а у вас данные записываются в регистр фукнций так, что это и происходит.
|
|
|
|
|
Mar 21 2013, 20:42
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Цитата(artkam @ Mar 21 2013, 22:38)  Присмотритесь внимательнее, изменения коснулись и функции Mute()! Физическая сущность в том, что в микросхеме предусмотрена возможность посылать сигнал мимо темброблока, а у вас данные записываются в регистр фукнций так, что это и происходит. Нет я это все понял, изменил, видел и добавление unsigned char... Спасибо огромное на выходных опробую, думаете будет работать? Подскажите а как сделать так что б при выбраном входе отображалось на LCD в условие indicate=1;, ато я писал функцию Код //Засветим свето-диоды по выбраному каналам и покажем на LCD void Input_CH_Indicate(void) { if(input_ADDR == IN_AC3) // Если канал выбран { lcd_gotoxy(0,0); lcd_putsf("ac-3"); LED_inputAC3=1; } else { LED_inputAC3=0; }; if(input_ADDR == IN_1) { lcd_gotoxy(0,0); lcd_putsf("ac-3"); LED_input1=1; } else { LED_input1=0; }; if(input_ADDR == IN_2) { lcd_gotoxy(0,0); lcd_putsf("ac-3"); LED_input2=1; } else { LED_input2=0; }; if(input_ADDR == IN_3) { lcd_gotoxy(0,0); lcd_putsf("ac-3"); LED_input3=1; } else { LED_input3=0; }; if(input_ADDR == IN_4) { lcd_gotoxy(0,0); lcd_putsf("ac-3"); LED_input4=1; } else { LED_input4=0; };
}
Сообщение отредактировал Дмитрий(846) - Mar 21 2013, 20:44
|
|
|
|
|
Mar 23 2013, 16:55
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Попробовал звук не меняется.
|
|
|
|
|
Mar 23 2013, 18:00
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Цитата(artkam @ Mar 23 2013, 19:18)  А при нажатии на кнопку Mute, что-то происходит? ДА звук отключается, снова нажав включается и соответственно загорается светодиод. Кстати если что у меня наоборот, диод светиться при логическом 0 ( так как у меня стоят ключи)
|
|
|
|
|
Mar 23 2013, 18:47
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 14-09-10
Из: Уфа
Пользователь №: 59 479

|
Внес изменения в Function_3D(). Обратите внимание, происходит ли что-то при нажатии соответствующей кнопки на пульте....
|
|
|
|
|
Mar 23 2013, 20:12
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Цитата(artkam @ Mar 23 2013, 20:47)  Внес изменения в Function_3D(). Обратите внимание, происходит ли что-то при нажатии соответствующей кнопки на пульте.... нет, ничего не меняется О немного получается, только две колонки не работаю F.L. & F.R.
Сообщение отредактировал Дмитрий(846) - Mar 23 2013, 20:00
|
|
|
|
|
Mar 23 2013, 20:21
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894

|
Да, но где то блокируются два канала F.R. и F.L.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|