Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Ну так что, мужики, никто не подскажет че с моим COM творится?
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

А какие вообще выводы ATMega16 задействованы как ШИМ? там их 4, это я знаю, но только как они называются - хз. и номера выводов. Подскажите плиз, будет очень хорошо.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

а открыть ДШ полистать, слабо?
а иногда полезно

ЗЫ: ОС0 - РВ3
ОС1B - PD4
OC1A - PD5
OC2 - PD7
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а на них можно прямо светодиоды подключить через резисторы?
Для ШИМ часто нужен простейший RC фильтр чтобы из прямоугольного получить постоянное напряжение

А это для чего нужен RC фильтр? для каких цепей? для светодиодов не надо, а для чего тогда нужен ШИМ с таким аналоговым обвязом?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

светодиоды через резисторы повесить можно,главное не превысиь макс.ток 40 мА на вывод, и 200 мА на корпус.
интегратор нужен... да хз для чего я с таким не сталкивался, а нет вру, подключал стрелочный прибор, и пока не поставил RC-цепь, показывал цену на дрова в прошлом году.
для светодиода интегратором служит глаз человека.
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

200мА на корпус это как? на порт чтоль? :))
понятно, спасибо)
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

не на порт, а через выводы Vcc или GND
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а почему так? никогда о таком не слышал...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

какие твои годы :wink:
курите ДШ :beer:
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

-=MindHunteR=- писал(а):Ну так что, мужики, никто не подскажет че с моим COM творится?

Вопрос к Вам. В программе фигурируют строки
val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал

// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
Теперь сам вопрос, Вы упомянули только переменную val, а где pwm,pwm_ctr? Насколько йа понимайу, то наличие этих переменных обязательно. Иначе просто будет каша лезть...
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Meteor писал(а):
-=MindHunteR=- писал(а):Ну так что, мужики, никто не подскажет че с моим COM творится?

Вопрос к Вам. В программе фигурируют строки
val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал

// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
Теперь сам вопрос, Вы упомянули только переменную val, а где pwm,pwm_ctr? Насколько йа понимайу, то наличие этих переменных обязательно. Иначе просто будет каша лезть...


Они разумеется есть. Видите я там написал:

Код: Выделить всё

    // тут еще делается работа с переменными - убрал чтоб не мешалась 
    // ибо прога пашет супер, только глючит вывод на терминал

Вот там с ними идет работа. Просто она идет нормально, ногами МК дергает планово, работу выполняет идеально.
Только в терминал шлется бред....
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...

Теперь вижу
-=MindHunteR=- писал(а):Только в терминал шлется бред....

У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал запрещать генерацию прерываний по опустошению буфера или передатчика. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Meteor писал(а):
-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...

Теперь вижу
-=MindHunteR=- писал(а):Только в терминал шлется бред....

Теперь другой вопрос. У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал сбрасывать UDRE или TXEN. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.

То есть после prinft писать TXEN=0 и UDRE бит в UDR тоде обнулить.
И перед prinft присвоить обоим 1?
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

-=MindHunteR=- писал(а):То есть после prinft писать TXEN=0 и UDRE бит в UDR тоде обнулить.
И перед prinft присвоить обоим 1?

Да, я делаю именно так. Иначе этот гад не может остановиться. У меня в обработке по пустому буферу читает из ОЗУ с инкрементом. После того как все данные переданы надо его тормозить или подготовить новую порцию данных. Иначе он, @, читает и отправляет то что не надо ни читать ни отправлять. :oops:
Уточню, у меня слежка за числом байт внутренняя и потому я точно знаю где и когда его тормозить. У Вас, как я понимаю, ее нет. Время на передачу пакета может быть больше чем просто время вызова функции printf.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Meteor писал(а): У Вас, как я понимаю, ее нет. Время на передачу пакета может быть больше чем просто время вызова функции printf.

Да, ее нет.
Эмммм, как бороться со временем передачи? Если оно все время разное, то по простому не выйдет...... :(
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

-=MindHunteR=- писал(а):Эмммм, как бороться со временем передачи? Если оно все время разное, то по простому не выйдет...... :(

Повторяю как поборол эту беду. Зная что мой пакет состоит из К байт и имея свободный таймер/счетчик (Т0/Т1) с его выводами. Настраиваю таймер на счет К-1 внешних импульсов (для Т0) или К импульсов (для Т1). В обработке по пустому буферу передатчика (UDRIE=1), кроме записи новых данных, формирую инкремент счетчика (просто импульс на входе счетчика). В прерывании таймера по совпадению прописываю запрет работы УАППа. И спокойно ухожу на работу с МК. Когда приходит время передачи, обнуляю таймер, запускаю УАПП и фсйо никаких сбоев. Для плавающих длин передачи, формируемых на разных участках кода, можно задавать новое значение регистра сравнения. Или при Т1 например задействовать оба регистра OCR1A и OCR1B, прописывая свои длины. Таким образом у меня получались пакеты разной длины, было удобно передавать короткие пакеты на старте по 6 байт, и длинные пакеты по 14 байт.(чтоб далеко не уползали по частотам). Если есть такая возможность у Вас - то карты в руки.
Последний раз редактировалось Meteor Ср окт 28, 2009 00:29:13, всего редактировалось 1 раз.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Meteor писал(а):Повторяю как поборол эту беду.... Если есть такая возможность у Вас - то карты в руки.

Теперь дошло.
Буду пробовать. Спасибо! :beer:
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

-=MindHunteR=- писал(а):Теперь дошло.
Буду пробовать. Спасибо! :beer:

Пожалуйста.
Если хотите могу прислать прогу, только я приверженец ассемблера и прога есно на асме. В студии можно посмотреть как она работает. :tea:
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Сообщение -=MindHunteR=- »

Ох каюсь. Асемблер я подзабыл... Хотя может Ваша прога будет хорошим поводом повспоминать, особенно если там есть комменты...
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Сообщение *Trigger* »

Файл прошивки, выложенный здесь уже скомпилмрован?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Ответить

Вернуться в «Разные вопросы по МК»