Заголовок сообщения: 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)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения