Мелкие вопросы по МК и ПЛИС.
Ну так что, мужики, никто не подскажет че с моим COM творится?
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
а открыть ДШ полистать, слабо?
а иногда полезно
ЗЫ: ОС0 - РВ3
ОС1B - PD4
OC1A - PD5
OC2 - PD7
а иногда полезно
ЗЫ: ОС0 - РВ3
ОС1B - PD4
OC1A - PD5
OC2 - PD7
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
а на них можно прямо светодиоды подключить через резисторы?
А это для чего нужен RC фильтр? для каких цепей? для светодиодов не надо, а для чего тогда нужен ШИМ с таким аналоговым обвязом?Для ШИМ часто нужен простейший RC фильтр чтобы из прямоугольного получить постоянное напряжение
Не умеешь - не берись, но не взявшись не научишься...
светодиоды через резисторы повесить можно,главное не превысиь макс.ток 40 мА на вывод, и 200 мА на корпус.
интегратор нужен... да хз для чего я с таким не сталкивался, а нет вру, подключал стрелочный прибор, и пока не поставил RC-цепь, показывал цену на дрова в прошлом году.
для светодиода интегратором служит глаз человека.
интегратор нужен... да хз для чего я с таким не сталкивался, а нет вру, подключал стрелочный прибор, и пока не поставил RC-цепь, показывал цену на дрова в прошлом году.
для светодиода интегратором служит глаз человека.
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
не на порт, а через выводы Vcc или GND
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
какие твои годы
курите ДШ
курите ДШ
- Сообщения: 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... не спрашивайте даже
Они разумеется есть. Видите я там написал:Meteor писал(а):Вопрос к Вам. В программе фигурируют строки-=MindHunteR=- писал(а):Ну так что, мужики, никто не подскажет че с моим COM творится?Теперь сам вопрос, Вы упомянули только переменную val, а где pwm,pwm_ctr? Насколько йа понимайу, то наличие этих переменных обязательно. Иначе просто будет каша лезть...val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал
// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
Код: Выделить всё
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал Только в терминал шлется бред....
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
Теперь вижу-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...
У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал запрещать генерацию прерываний по опустошению буфера или передатчика. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.-=MindHunteR=- писал(а):Только в терминал шлется бред....
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
То есть после prinft писать TXEN=0 и UDRE бит в UDR тоде обнулить.Meteor писал(а):Теперь вижу-=MindHunteR=- писал(а):Они разумеется есть. Видите я там написал:
...Теперь другой вопрос. У меня на 8535-й меге, при установки UDRE, при разрешенной передаче (Ваш кстати случай) тоже лезло что попало, пока не стал сбрасывать UDRE или TXEN. Попробуйте пропишите ему команду по закрытию генерации одного из них или их обоих. Может и для Вас подойдет.-=MindHunteR=- писал(а):Только в терминал шлется бред....
PS. У меня слежка за пакетом возложена на счетчик, он тупо считает число переданных байт и затыкает глотку этому болтуну.
И перед prinft присвоить обоим 1?
- Сообщения: 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... не спрашивайте даже
Да, ее нет.Meteor писал(а): У Вас, как я понимаю, ее нет. Время на передачу пакета может быть больше чем просто время вызова функции printf.
Эмммм, как бороться со временем передачи? Если оно все время разное, то по простому не выйдет......
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
Повторяю как поборол эту беду. Зная что мой пакет состоит из К байт и имея свободный таймер/счетчик (Т0/Т1) с его выводами. Настраиваю таймер на счет К-1 внешних импульсов (для Т0) или К импульсов (для Т1). В обработке по пустому буферу передатчика (UDRIE=1), кроме записи новых данных, формирую инкремент счетчика (просто импульс на входе счетчика). В прерывании таймера по совпадению прописываю запрет работы УАППа. И спокойно ухожу на работу с МК. Когда приходит время передачи, обнуляю таймер, запускаю УАПП и фсйо никаких сбоев. Для плавающих длин передачи, формируемых на разных участках кода, можно задавать новое значение регистра сравнения. Или при Т1 например задействовать оба регистра OCR1A и OCR1B, прописывая свои длины. Таким образом у меня получались пакеты разной длины, было удобно передавать короткие пакеты на старте по 6 байт, и длинные пакеты по 14 байт.(чтоб далеко не уползали по частотам). Если есть такая возможность у Вас - то карты в руки.-=MindHunteR=- писал(а):Эмммм, как бороться со временем передачи? Если оно все время разное, то по простому не выйдет......
Последний раз редактировалось Meteor Ср окт 28, 2009 00:29:13, всего редактировалось 1 раз.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Теперь дошло.Meteor писал(а): Повторяю как поборол эту беду.... Если есть такая возможность у Вас - то карты в руки.
Буду пробовать. Спасибо!
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
Пожалуйста.-=MindHunteR=- писал(а):Теперь дошло.
Буду пробовать. Спасибо!
Если хотите могу прислать прогу, только я приверженец ассемблера и прога есно на асме. В студии можно посмотреть как она работает.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Ох каюсь. Асемблер я подзабыл... Хотя может Ваша прога будет хорошим поводом повспоминать, особенно если там есть комменты...
Файл прошивки, выложенный здесь уже скомпилмрован?
Этот пост оказался полезен? Не поленись, нажми
слева!

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



