Мелкие вопросы по МК и ПЛИС.
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
а на них можно прямо светодиоды подключить через резисторы?
А это для чего нужен RC фильтр? для каких цепей? для светодиодов не надо, а для чего тогда нужен ШИМ с таким аналоговым обвязом?
Для ШИМ часто нужен простейший RC фильтр чтобы из прямоугольного получить постоянное напряжение
А это для чего нужен RC фильтр? для каких цепей? для светодиодов не надо, а для чего тогда нужен ШИМ с таким аналоговым обвязом?
Не умеешь - не берись, но не взявшись не научишься...
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
светодиоды через резисторы повесить можно,главное не превысиь макс.ток 40 мА на вывод, и 200 мА на корпус.
интегратор нужен... да хз для чего я с таким не сталкивался, а нет вру, подключал стрелочный прибор, и пока не поставил RC-цепь, показывал цену на дрова в прошлом году.
для светодиода интегратором служит глаз человека.
интегратор нужен... да хз для чего я с таким не сталкивался, а нет вру, подключал стрелочный прибор, и пока не поставил RC-цепь, показывал цену на дрова в прошлом году.
для светодиода интегратором служит глаз человека.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
-=MindHunteR=- писал(а):Ну так что, мужики, никто не подскажет че с моим COM творится?
Вопрос к Вам. В программе фигурируют строки
Теперь сам вопрос, Вы упомянули только переменную val, а где pwm,pwm_ctr? Насколько йа понимайу, то наличие этих переменных обязательно. Иначе просто будет каша лезть...val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал
// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Meteor писал(а):-=MindHunteR=- писал(а):Ну так что, мужики, никто не подскажет че с моим COM творится?
Вопрос к Вам. В программе фигурируют строкиТеперь сам вопрос, Вы упомянули только переменную val, а где pwm,pwm_ctr? Насколько йа понимайу, то наличие этих переменных обязательно. Иначе просто будет каша лезть...val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал
// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
Они разумеется есть. Видите я там написал:
Код: Выделить всё
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал Вот там с ними идет работа. Просто она идет нормально, ногами МК дергает планово, работу выполняет идеально.
Только в терминал шлется бред....
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...
Теперь вижу
-=MindHunteR=- писал(а):Только в терминал шлется бред....
У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал запрещать генерацию прерываний по опустошению буфера или передатчика. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Meteor писал(а):-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...
Теперь вижу-=MindHunteR=- писал(а):Только в терминал шлется бред....
Теперь другой вопрос. У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал сбрасывать UDRE или TXEN. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.
То есть после prinft писать TXEN=0 и UDRE бит в UDR тоде обнулить.
И перед prinft присвоить обоим 1?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
-=MindHunteR=- писал(а):То есть после prinft писать TXEN=0 и UDRE бит в UDR тоде обнулить.
И перед prinft присвоить обоим 1?
Да, я делаю именно так. Иначе этот гад не может остановиться. У меня в обработке по пустому буферу читает из ОЗУ с инкрементом. После того как все данные переданы надо его тормозить или подготовить новую порцию данных. Иначе он, @, читает и отправляет то что не надо ни читать ни отправлять.
Уточню, у меня слежка за числом байт внутренняя и потому я точно знаю где и когда его тормозить. У Вас, как я понимаю, ее нет. Время на передачу пакета может быть больше чем просто время вызова функции printf.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
-=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... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
-=MindHunteR=- писал(а):Теперь дошло.
Буду пробовать. Спасибо!
Пожалуйста.
Если хотите могу прислать прогу, только я приверженец ассемблера и прога есно на асме. В студии можно посмотреть как она работает.

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

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.

