[an error occurred while processing this directive]
есть необходимость, и изменяемые, и как правило используемые (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
SIGNAL(SIG_INTERRUPT0)
{
t = 1;
}int main()
{
DDRB = 0xFF;
while (1)
{
if (t)
{
PORTB ^= 0x01;
t = 0;
}
}
}
И получается
В обработчике прерывания
93 000c 81E0 ldi r24,lo8(1)
94 000e 8093 0000 sts t,r24
В main
122 002a 8091 0000 lds r24,t
123 002e 91E0 ldi r25,lo8(1)
А вот тут приехали
124 .L10:
126 .LM5:
127 0030 8823 tst r24
128 0032 F1F3 breq .L10
Дальше уже можно не смотреть
Составить ответ
|||
Конференция
|||
Архив
Ответы
- А можете полный листинг асма мэйн? Это жцц? — prosto_Alex (13.12.2005 16:58 80.77.40.11, пустое)
- да, это avr-gcc — радиолюбитель без лицензии (13.12.2005 17:18 62.64.81.146, пустое)
- пожалуйста (+) — радиолюбитель без лицензии (13.12.2005 17:13 62.64.81.146, 1199 байт)
- а вот пример, почему нужно ставить volatile на используемые в прерывании переменные (+) — радиолюбитель без лицензии (13.12.2005 16:57 62.64.81.146, 1994 байт)
- Из-за того, что опустил пролог/эпилог, может создасться впечатление, что будет все работать. Но это не так. (+) — радиолюбитель без лицензии (13.12.2005 16:45 62.64.81.146, 768 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru