Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Ср мар 28, 2018 10:35:47
Открыл глаза
Зарегистрирован: Вт май 05, 2009 17:32:50 Сообщений: 52
Рейтинг сообщения:0
Цитата:
на мой взгляд с ними тоже)интереса ради проверьте кнопки на светодиодах
Работу кнопок я смотрю в еепроме как они прибавляют или отнимают.
Цитата:
можете четко сформулировать задачу, проблему и вопрос? как в армии - кратко и по существу?
после нажатия кнопок должна измениться частота на выходе ФАПЧ но этого не происходит
Код:
// регистры сравнения 16 битный заносим AH старшую AL младшую часть переменной OCR1AH = (N >> 8) & 0x00FF;// Задаем новое значение коэффициента пересчета OCR1AL = N & 0x00FF;//записываем число для сравнения
это код в прерывании измененную переменную записываю для сравнения с ТССR таймера 1 и частота должна по идеи измениться.
Последний раз редактировалось bango Ср мар 28, 2018 10:49:10, всего редактировалось 1 раз.
это код в прерывании измененную переменную записываю для сравнения с ТССR
как-то сложновато...
Код:
OCR1A = N;
режим таймера у вас правильно задан?
Добавлено after 13 minutes 7 seconds: на выходе OC1A у вас должна появиться частота, равная поделенной на OCR1A частоте, поступившей на вход T1 - верно? на Т1 частота поступает? какая именно? вы учитываете тот факт, что запись в OCR1A в обработчике происходит в время уже начатого цикла работы таймера, и, соответственно, на этот цикл не повлияет?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Добавлено after 9 minutes 40 seconds: да вот еще что... я уж не знаю, насколько вы там сделали усекновение программы свей, но главный цикл в том файле, что вы выложили, полностью эквивалентен следующему:
Код:
while(1){ Buton_save(); // Проверим состояние кнопки "Save" и сохраним переменные Buton_minys (); // Проверка нажатия кнопки уменьшить Buton_plys();// Проверка нажатия кнопки увеличение if(FChangeFlag) { TIMSK |= (1 << OCIE1A); // Разрешаем прерывания по совпадению для модификации OCR1A } }
кстати, запрещать прерывания по совпадению в обработчике прерывания по совпадению не надо
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Ср мар 28, 2018 11:07:45
Открыл глаза
Зарегистрирован: Вт май 05, 2009 17:32:50 Сообщений: 52
Рейтинг сообщения:0
Цитата:
на выходе OC1A у вас должна появиться частота, равная поделенной на OCR1A частоте, поступившей на вход T1 - верно? на Т1 частота поступает? какая именно? вы учитываете тот факт, что запись в OCR1A в обработчике происходит в время уже начатого цикла работы таймера, и, соответственно, на этот цикл не повлияет?
Вот где то тут истина я отвечу работа мешает думать.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
то есть я хочу сказать, что никакого изменения ваших переменных не происходит, так как сначала отрабатывает кнопка минус, а потом плюс, в итоге все остается, как и было. на нажатия кнопок ваша программа реагировать не будет - можете даже не припаивать их сорри, даже не мог подумать, что у вас так занятно обработка кнопок сделана т.е. главный цикл на самом деле в if-ах не нуждается, но реакция на кнопки какая-то предусмотрена... поспешил с выводами
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
даташит: The following code examples show how to do an atomic write of the TCNT1 Register contents. Writing any of the OCR1A/B or ICR1 Registers can be done by using the same principle.
Код:
void TIM16_WriteTCNT1 ( unsigned int i ) { unsigned char sreg; unsigned int i; /* Save global interrupt flag */ sreg = SREG; /* Disable interrupts */ _CLI(); /* Set TCNT1 to i */ TCNT1 = i; /* Restore global interrupt flag */ SREG = sreg;
вы забываете, что OCR1A обновляется в обработчике прерывания, т.е. запрещать прерывания не надо. но в остальном вы правы - снов я поторопился, т.к. привык пользовать таймер в режиме Fast-PWM, когда доступ в OCR1x буфферизируется... и совсем забыл, что эта буфферизация активна не всегда.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Ср мар 28, 2018 14:24:45
Открыл глаза
Зарегистрирован: Вт май 05, 2009 17:32:50 Сообщений: 52
Рейтинг сообщения:0
Цитата:
на выходе OC1A у вас должна появиться частота, равная поделенной на OCR1A частоте, поступившей на вход T1 - верно?
Да это вы верно поняли
Цитата:
на Т1 частота поступает? какая именно?
да поступает. точно не знаю надо посчитать, должна поступать в (Диапазон регулирования частоты: 100 - 300 кГц)
Цитата:
вы учитываете тот факт, что запись в OCR1A в обработчике происходит в время уже начатого цикла работы таймера, и, соответственно, на этот цикл не повлияет?
Пока я над этим не думал это хорошее замечание. и даже не знаю как это вообщем отразится.
По поводу опроса кнопок вы дали хорошие замечания вот что значит взгляд профи за это спасибо.
Цитата:
запрещать прерывания не надо
значит получается запрет прерывания убрать из опроса прерывания и вот этот код убрать
Код:
if(FChangeFlag) { TIMSK |= (1 << OCIE1A); // Разрешаем прерывания по совпадению для модификации OCR1A }
а TIMSK вставить вот так я правильно понял?
Код:
int main(void)
TIMSK |= (1 << OCIE1A); // Разрешаем прерывания по совпадению для модификации OCR1A
честно говоря, я не понимаю, зачем обновлять OCR1A в обработчике прерываний? ведь если делать это в главном цикле, обработчик прерывания вообще не понадобится - пусть себе гонит меандр на выходе абсолютно аппаратно
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Чт мар 29, 2018 07:49:20
Открыл глаза
Зарегистрирован: Вт май 05, 2009 17:32:50 Сообщений: 52
Рейтинг сообщения:0
у меня в протэусе кварц не правильно выставлен, пытаюсь понять как установить 16Мгц вот что сейчас показывает осциллограф Т1 = 6,7 нс = 1000\6,7 = 149,25 Мг ОС1А = 30,4мс 100\30,4 = 3,2 Мг ОС0А = 1020мс = 10\102 0,9 гц
в протеусе "нарисованный" кварц никак не влияет на поведение МК. чтобы изменить частоту "кварца" надо в свойствах МК задать тактовую частоту - хоть 100 МГц можно
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Чт мар 29, 2018 10:55:38
Открыл глаза
Зарегистрирован: Вт май 05, 2009 17:32:50 Сообщений: 52
Рейтинг сообщения:0
Выстовил как вы показали вот так получается Вот так настроен счетчик TCCR0B |= (1 << CS00);// CS = 101 - от внутреннего источника TCCR0B |= (1 << CS02);// после пред делителя (15625)
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения