Easyelectronics.ru

Электроника для всех
Текущее время: 23 янв 2021, 00:38

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 11:03 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3693
Откуда: Новосибирск
Не соглашусь. Прерывание бывает не нужно. Зависит от задачи.
Распишу подход и правила, при которых это реализуемо: все процессы дробятся, условиями, флагами, состояниями конечных автоматов. Цель - раздробить все процессы, с тем условием, чтобы итерация основного цикла всегда выполнялась с запасом за системный тик. Скажем, 1 мс.
Пример: тут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 11:28 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
demiurg1978 писал(а):
Не соглашусь. Прерывание бывает не нужно. Зависит от задачи.
Распишу подход и правила, при которых это реализуемо: все процессы дробятся, условиями, флагами, состояниями конечных автоматов. Цель - раздробить все процессы, с тем условием, чтобы итерация основного цикла всегда выполнялась с запасом за системный тик. Скажем, 1 мс.
Пример: тут.

да ладна... :)
задача банальная.... :)
а чтобы дребезга избежать- по прерыванию таймера(5-100мс) опрашиваем вход и взводим флаг...
а в основном цикле на него реагируем и сбрасываем...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 13:53 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3693
Откуда: Новосибирск
А если нам потребуется отмерять несколько временных параметров? Упрощаю задачу, шаг миллисекунды.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 14:01 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
demiurg1978 писал(а):
А если нам потребуется отмерять несколько временных параметров? Упрощаю задачу, шаг миллисекунды.

дык.... один хрен... будете программно систик юзать....
а можно красиво сделать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 14:09 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3693
Откуда: Новосибирск
Например, красиво без прерываний. Но с использованием таймера. То есть, опрос и сброс флага таймера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 14:40 
Только пришел

Зарегистрирован: 13 май 2020, 03:03
Сообщения: 10
demiurg1978 писал(а):
Молодой и глупый. Это не оскорбление. Молодость и глупость лечится временем, возрастом.
1 - Вы решили освоить программирование микроконтроллеров. Похвально. Без сарказма.
2 - На любом другом форуме тоже попадётся участник, который тебе скажет - иди читай книжку, твою медь налево!!!
3 - Кнопка, контакты. Дребезг контактов. Это означает, что если вы не примите меры по подавлению дребезга, то вместо одного нажатия будет несколько.
4 - и так далее и так далее.
5 - вы ведете себя как ребёнок. О, этот добрый дядька, ответил, а этот злой, обматерил. Но все не так на самом деле.
Повторяю, не спешите с выводами насчёт меня и остальных. Попробуйте понять, что вам говорят. Иначе, с таким поведением и отношением никто не будет вам помогать. Хотите, чтобы я не писал в ваши темы, не вопрос, я запомню ваш ник.


Никаких обид. По пункту 2, таких участников много, к сожалению, так мешают по делу общаться. Повторюсь, в теме четко обозначено, что к чему. И если хочется писать банальные нравоучения, просто не смотрите подобные темы.
По пункту 3, меры в моей программе предприняты, если, по неопытности, неверные, хотелось бы услышать конкретные рекомендации, что посмотреть для решения данной задачи.
Я далеко не молодой и о глупости можно поспорить. Писать такое, не зная человека, как минимум не корректно и неуважительно, что не делает Вам чести, как уважающему себя человеку.
Как видите, помогать мне будут и не малое кол-во народа. Так что, и тут вы не правы. И я помогаю в таких случаях по своим направлениям.
По поводу чтения книг: куча народу начинали читать и бросали, т.к. в любом большом деле надо найти и выстроить правильную методику и порядок изучения вопроса. Только тогда становится понятно и интересно решать задачи.Особенно сложно это сделать при нехватки свободного времени, т.к. эта задача не является в жизни приоритетной, я не претендую на профессионала (только увлечение). Я пока не понял, как правильно выстроить порядок изучения и пошел по рекомендациям гуру с практической простой задачки. И уперся в Ваши рекомендации, после которых молодой, как вы говорите, просто забросил бы это занятие. Так что, Ваши рекомендации не есть польза для людей. Послушайте мой совет, молодой человек. Не советуйте никому ничего подобного, вы не компетентны в этом. Просто, или помогите в решении, или не смотрите подобные ветки, дабы не раздражаться самому и не раздражать других. А нравиться учить, так Вам в педагоги прямая дорога.
А человек вот взял и объяснил стратегию изучения, на что обратить внимание. Показал подход к решению данной проблемы. А что б с Вами не спорить и не читать пустую болтавню, ушел в личку. Благодарен ему, буду с ним с удовольствием общаться. Удачи Вам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 15:28 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
demiurg1978 писал(а):
Например, красиво без прерываний. Но с использованием таймера. То есть, опрос и сброс флага таймера.

флаг прерывания таймера по любому сбрасывать надо...

программный флаг....
bool sukonazhaliknopku = FALSE;
intptime1()
{
//тута флаг прерывания скинули...
if(PORTB.BIT1==0)
{
sukonazhaliknopku=true;
}
}

main()
{
if(sukonazhaliknopku) {onLED1(); sukonazhaliknopku=false;}
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 15:43 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
Какой еще флаг прерывания?! AVR их автоматом железом сбрасывает при переходе по вектору прерывания. Говорили о своём флаге, а не флаге прерывания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 15:54 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
NStorm писал(а):
Какой еще флаг прерывания?! AVR их автоматом железом сбрасывает при переходе по вектору прерывания. Говорили о своём флаге, а не флаге прерывания.

хорошо.... на пальцах.... глобальная переменная, например типа bool ... это флаг события..... в прерывании... ему присваивают значение.... в основном цикле программы- ждут это значение.... выполняют действие ... флаг сбрасывают.... следущее значение флага придёт через- наскока таймер настроен....

я уже не знаю как проще обьяснить....
ну в обработчике прерывания таймера , который настроен(ну..на 50мс).... считывайте порт и глобальной переменной ЖМАКНУЛИ
присвамвайте значение.... а основная программа будет в цикле следить за переменной ЖМАКНУЛИ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 17:20 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
Не надо проще. Надо правильно вещи называть. "Флаг прерывания" - вполне определенное понятие аппаратных флагов в AVR, заканчивающихся обычно на IF (interrupt flag).
А то, что вы описываете - это пользовательский флаг, программный флаг, или просто флаг. Вы же написали "флаг прерывания", при этом не написали сам код сброса флага, чем и ввели в заблуждение. В архитектуре PIC, например, флаги прерывания надо вручную сбрасывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 18:25 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
NStorm писал(а):
Не надо проще. Надо правильно вещи называть. "Флаг прерывания" - вполне определенное понятие аппаратных флагов в AVR, заканчивающихся обычно на IF (interrupt flag).
А то, что вы описываете - это пользовательский флаг, программный флаг, или просто флаг. Вы же написали "флаг прерывания", при этом не написали сам код сброса флага, чем и ввели в заблуждение. В архитектуре PIC, например, флаги прерывания надо вручную сбрасывать.

вы читать то умеете?
я и написал- " программный флаг "....
если кому то это надо обьяснять- то пусквай букварь пилит...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 18:35 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
Лучше писать нормально научитесь, а не хамить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Совсем начальное программирование AVR. Help!!!
СообщениеДобавлено: 14 май 2020, 18:50 
Заглядывает иногда

Зарегистрирован: 14 апр 2020, 08:57
Сообщения: 168
NStorm писал(а):
Лучше писать нормально научитесь, а не хамить.

я не хамлю...:)
чёрным по русскому написано в посте- " программный флаг" :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB