После того как прицепил питание на AREFAVCC , преобразование пошло...
НО цветные квадратики возле выводов ADC так и не появились. Ну и ладно подумал я, хотя уже привычно смотреть по цвету квадратика, примерный уровень на ножке.....
НО, после того как я (совсем по другой причине) у резисторов подтяжки изменил режим работы на DIGITAL, квадратики появились.....
Так что постепенно вывели протеус на чистую воду .....
Последний раз редактировалось shads Вт апр 23, 2013 16:09:19, всего редактировалось 2 раза.
В датошите пишут:
In the TQFP and QFN/MLF package, ADC7..6 serve as analog inputs to the A/D converter.
These pins are powered from the analog supply and serve as 10-bit ADC
channels. - Типа только каналы АЦП
alex1126 писал(а):
Это я знаю. А сколько туда пускать лучше?
Строго говоря это не совсем защита. Уровень VREF совместно с токовыми шунтами (у вас R3, R6 ) определяет ток отсечки в обмотках. Он (VREF) подбирается/регулируется в зависимости от применяемого двигателя. И судя по типу резисторов у вас там чуть не 10А собираетесь пропускать. Сдохнет бобикL298 однахо.
Последний раз редактировалось passer_by Вт апр 23, 2013 16:27:29, всего редактировалось 1 раз.
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
ADMUX &=~(1<<MUX0); //включаем канал ADC6 (MUX1 и MUX2 установлены ранее)
ADCSR |= (1<<ADSC); //запустить преобразование
while (ADCSR & (1<<ADSC)){} //крутимся в цикле до конца замера
if (ADCH < 0x80)
ADMUX |=(1<<MUX0); //включаем канал ADC7 (MUX1 и MUX2 установлены ранее)
ADCSR |= (1<<ADSC); //запустить преобразование
while (ADCSR & (1<<ADSC)){} //крутимся в цикле до конца замера
if (ADCH < 0x80)
сравнение в конце и определяет нажата или нет. Время преобразования 2-х кнопок всего 10us
В общем не плохой вариант сэкономить на полноценных выводах....
Ну, блин, ни когда б не додумался так использовать АЦП Круто. Тогда конечно AREF подключать на питание нужно, если используете внешний ИОН. (Если использовали б внутренний ИОН тогда бы AREF - в воздухе болтался и Протеус этот режим то же видит) И раз ADC6, 7 работают в режиме АЦП, то и ни какие красные квадратики не будут появляться.
Непосредственно весь код не вижу, но у вас наверное сам опрос этих "кнопок" как бы длится не менее длительности измерения.
P.S. А когда вообще запускается режим измерения? Ведь он может попасть и сразу после отпускания кнопки или в процессе нажатия ( в реальной схеме) может вляпаться на дребезг контактов....
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
passer_by писал(а):Ну, блин, ни когда б не додумался так использовать АЦП Круто.
Как припрет, и не до такого додуматься можно
passer_by писал(а):Тогда конечно AREF подключать на питание нужно, если используете внешний ИОН. (Если использовали б внутренний ИОН тогда бы AREF - в воздухе болтался и Протеус этот режим то же видит)
У меня сейчас подключено только AVCC к питанию, AREF не подключен, т.к. ИОН настроен на внутреннее питание контроллера. Как я понимаю в таком случае на AREF обычно только кондер вешают.....
passer_by писал(а):И раз ADC6, 7 работают в режиме АЦП, то и ни какие красные квадратики не будут появляться.
Как я выяснил..... (сам удивлен такому поведению протеуса) если резисторы подтяжки в режиме ANALOG то квадратиков нет..... А если резисторы подтяжки включены в режиме DIGITAL то квадратики есть.....
passer_by писал(а):Непосредственно весь код не вижу, но у вас наверное сам опрос этих "кнопок" как бы длится не менее длительности измерения.
Не, практически все время - преобразование занимает. Процедура опроса кнопок совсем не сложная.....
Ну принцип понял. Хотя с самим кодом еще надо разбираться. Использование INLINE плохо понимаю. Кажется функция INLINE static void BtnProcess (void) длинновата для INLINE. И можно ли использовать функции INLINE в прерываниях? А NOINLINE ваще темное дело.
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
INLINE static void BtnProcess (void) сделал INLINE т.к. она вызывается только из одного места, вот чтобы отдельной функцией не оформлялось, залепил INLINE.....
В даннам файле стандартная схема управления симистром на основе оптопары MOC3031M (взята из даташита).
Получение полупериодов на нагрузку(лампочку) не создает проблем.
В схеме необходимо на нагрузку получить не полупериод, а часть синусоиды между пиками (см graph.png).
passer_by писал(а):Ну, блин, ни когда б не додумался так использовать АЦП
10 резюков по 1 кОм последовательно и будет вам 10 кнопок через каждые 0.5V.
shads писал(а):Как я выяснил..... (сам удивлен такому поведению протеуса) если резисторы подтяжки в режиме ANALOG то квадратиков нет..... А если резисторы подтяжки включены в режиме DIGITAL то квадратики есть.....
Так и должно быть, квадратиками прот показывает цифровые уровни, а если вы желаете аналоговую обработку то цифровые уровни вам никчему. Причём тут-же включится расчет аналоговых цепей и загрузит вам проц под 100%.
Seawolf писал(а):В обоих случаях возникает одна и та же ошибка:
Странно, что при современном уровне развития информатизации у Вас возникает проблема в понимании написанного Протеусом.
Он пишет, что для симуляции задан слишком маленький интервал времени, и его, очевидно, необходимо увеличить. Сделать это можно в Settings\Set Simulation Options\Trancient.
Не могли бы вы мне помочь, необходимо с микроконтроллера подать сигнал на ОУ 2хканальный, в Протеусе впервые поэтому озадачен тем , что LM358 выглядит иначе чем в даташите. Надо получить то, что представленно на картинке, но в протеусе никак не могу :/
Murka писал(а):Сэр Zero-Cross_ом сие получить не возможно! Возьмите для начала не Zero-Cross а Random-phase оптопару что-то типа MOC 3021.
Большое спасибо, попробую. Может лучше попытаться решить задачу с помощью транзисторов ?
Orion33 писал(а):Странно, что при современном уровне развития информатизации у Вас возникает проблема в понимании написанного Протеусом.
Он пишет, что для симуляции задан слишком маленький интервал времени, и его, очевидно, необходимо увеличить. Сделать это можно в Settings\Set Simulation Options\Trancient.
1. У меня не возникает проблем с пониманием.
2. Чем Вы объясните, что схема, которую я выложил, работает при текущих параметрах - но при изменении фазы на 90 градусов
начинает выдавать ошибку по времени итерации ?
Симулятор считает построенную схему (которую мы не меняем) по одному и тому же алгоритму, настройки те же - меняются только
исходные данные.
3. По Вашему совету, при каких параметрах [NUMSTEPS] / [TRTOL] / [TTOL] / [TMIN], проект заработал без ошибок ???
P.S. Уважаемые специалисты, все когда-то были новичками. Хотелось бы получать в ответ не пафосные излияния, а конкретный
ответ на конкретный вопрос.
TAS90 писал(а):в Протеусе впервые поэтому озадачен тем , что LM358 выглядит иначе чем в даташите. Надо получить то, что представленно на картинке, но в протеусе никак не могу :/
Если Вы сравните внимательно свою картинку и УГО в Протеусе, то наверняка заметите, что и там и там есть треугольнички с плюсиками и минусиками.
ЗЫ. Простите, Вы студент?
Seawolf писал(а):2. Чем Вы объясните, что схема, которую я выложил, работает при текущих параметрах - но при изменении фазы на 90 градусов
начинает выдавать ошибку по времени итерации ?
Симулятор считает построенную схему (которую мы не меняем) по одному и тому же алгоритму, настройки те же - меняются только
исходные данные.
Да, такое вполне может быть. При наличии возбуждения Микрокап, например, сильно уменьшает шаг итераций.
Seawolf писал(а):
3. По Вашему совету, при каких параметрах [NUMSTEPS] / [TRTOL] / [TTOL] / [TMIN], проект заработал без ошибок ???
Я же Вам только совет дал То есть путь, куда копать. А Вы уж параметры подберите
Orion33 писал(а):
Если Вы сравните внимательно свою картинку и УГО в Протеусе, то наверняка заметите, что и там и там есть треугольнички с плюсиками и минусиками.
ЗЫ. Простите, Вы студент?
Да студент, просто в даташите как бы 2 входа в один и два в другой(inp1(2)inp1(3) и inp2(5)inp2(6)), а в протеусе они почемуто объединены :/ мне та нужны и те и те Прост только начал с ним работать и что-то никак...Прошил только микроконтроллер и вставил, у него тоже пару ножек скрыто (ГНД и Питание).
TAS90 писал(а):Да студент, просто в даташите как бы 2 входа в один и два в другой(inp1(2)inp1(3) и inp2(5)inp2(6)), а в протеусе они почемуто объединены :/
Не объединены они там. Там два усилителя в одном корпусе, в протеусе на поле вытаскивается по одному усилителю. Надо просто второй на поле вытащить, там во-первых по нумерации ног будет видно что это два устройства из одного корпуса, во-вторых по позиционному обозначению (U1:A, U1:B).
Engineer_Keen писал(а):
Не объединены они там. Там два усилителя в одном корпусе, в протеусе на поле вытаскивается по одному усилителю. Надо просто второй на поле вытащить, там во-первых по нумерации ног будет видно что это два устройства из одного корпуса, во-вторых по позиционному обозначению (U1:A, U1:B).
О_о я та голову ломал! Спасибо большое, пойду доделывать и запускать агрегат свой ))))
Seawolf писал(а):Большое спасибо, попробую. Может лучше попытаться решить задачу с помощью транзисторов ?
Я бы не стал, сложно это, и повторяемость невысокая, ну в смысле настраивать каждое новое изделие, и термодрейф, и куча всяких других мелочей на седую голову. Луче лапой нос прикрою.