|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.06.2024, 11:57 | #1 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 754
|
Почему перескакивает команду?
Здравствуйте. Сейчас изучаю программу таймера и там есть вот такой кусок кода:
Код:
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
23.06.2024, 13:34 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,632
|
За давностью не помню подробности, но Bug Errata (так вроде называлось сообщение фирмы о найденных багах и методах их устранения) что-то было на тему sbic. Конечно, тип МК и part number забыты прочно, но что было - помню точно.
У каждого своя метода, но я в таких случая предпочитал не бодаться со стеной непонятки, а переписывл аналогом. Код:
Ещё до прочтения Bug Errata я почему-то люто невзлюбил sbic, и его нет ни в одном из моих проектов. Последний раз редактировалось digitalis; 23.06.2024 в 13:39. |
23.06.2024, 14:02 | #3 |
Пользователь
Регистрация: 16.05.2024
Сообщений: 92
|
А если в программе прямо перед sbic PINB,S1_Button написать sbi PORTB, PORTB0 ?
То есть установить нужный бит. Что будет? |
23.06.2024, 19:27 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,632
|
А попробовать? AVR Studio под руками.
|
24.06.2024, 06:51 | #5 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 754
|
Здравствуйте. А что пробовать? Попробовал уже. Если перед этой командой сразу ставить мышкой бит в PINB0, то не работает. Если поставить эту 1 вначале предыдущего блока кода(инициализация), то работает. Это, короче, я понял, для железа сделано, а симуляция во 2 или в последнюю очередь.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
27.06.2024, 12:51 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,632
|
Давно не занимался АВРами, но, помнится, была у них (у более новых) такая странная фича.
Скажем, регистр PINB предназначен для чтения, и запись чего-нибудь туда вроде не имеет смысла. Но нет, запись 1 в бит регистра PINB... переключает соотв. бит в регистре PORTB ?! (как в Т-триггере). Так что эффект может быть неожиданным, если не знать. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Здравствуйте ! в чем проблема,почему почему время исполнения операций не работает ? | ion leahu | Помощь студентам | 6 | 23.11.2014 19:36 |
Combobox перескакивает на первый символ | warder49 | Компоненты Delphi | 1 | 19.07.2013 15:18 |
DBGrid перескакивает на 1ю запись | a_n_n_a | Общие вопросы Delphi | 1 | 21.05.2011 05:42 |
Перескакивает вниз блок слева | tark | HTML и CSS | 2 | 21.06.2010 18:21 |