|
Мой первый блин), Перехожу на Си |
|
|
|
Oct 6 2009, 13:08
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 24-09-06
Пользователь №: 20 645

|
CODE #include <avr/io.h> #include <avr/interrupt.h> #include <avr/wdt.h> volatile int i = 0; int main() { PORTE = 0x01; DDRE = 0x7F;
wdt_disable();
TCNT0 = 0x00; TCCR0A = 0; TCCR0B = 3; TIFR0 = 0; TIMSK0 = 0x01; sei(); //cli(); while (1) {
if (PORTK == 255) PORTK = 0; else PORTK++;
} }
ISR(TIMER0_OVF_vect) { //TCNT0 = 0x00;
if(i++ == 0xFF55) { PORTE ^= 0x01; i = 0; } } Суть проблемы - прерывание срабатывает, но на ноге порта Е никаких изменений, а если убрать условие (if) то все норм. Чиво не так сделал? Заранее спасибо.
Причина редактирования: Нарушение правил цитирования исходников.
|
|
|
|
|
 |
Ответов
|
Oct 6 2009, 14:16
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 24-09-06
Пользователь №: 20 645

|
вот листинг, прикрепить файл не получилось. CODE tst_gcc.elf: file format elf32-avr
Sections: Idx Name Size VMA LMA File off Algn 0 .text 000001a8 00000000 00000000 00000074 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .bss 00000001 00800200 00800200 0000021c 2**0 ALLOC
Disassembly of section .text:
00000000 <__vectors>: 0: 0c 94 72 00 jmp 0xe4; 0xe4 <__ctors_end> 4: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 8: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 10: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 14: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 18: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 1c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 20: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 24: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 28: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 2c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 30: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 34: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 38: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 3c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 40: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 44: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 48: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 4c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 50: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 54: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 58: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 5c: 0c 94 bb 00 jmp 0x176; 0x176 <__vector_23> 60: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 64: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 68: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 6c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 70: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 74: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 78: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 7c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 80: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 84: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 88: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 8c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 90: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 94: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 98: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> 9c: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> a0: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> a4: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> a8: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> ac: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> b0: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> b4: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> b8: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> bc: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> c0: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> c4: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> c8: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> cc: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> d0: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> d4: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> d8: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> dc: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt> e0: 0c 94 84 00 jmp 0x108; 0x108 <__bad_interrupt>
000000e4 <__ctors_end>: e4: 11 24 eor r1, r1 e6: 1f be out 0x3f, r1; 63 e8: cf ef ldi r28, 0xFF; 255 ea: d1 e2 ldi r29, 0x21; 33 ec: de bf out 0x3e, r29; 62 ee: cd bf out 0x3d, r28; 61
000000f0 <__do_clear_bss>: f0: 12 e0 ldi r17, 0x02; 2 f2: a0 e0 ldi r26, 0x00; 0 f4: b2 e0 ldi r27, 0x02; 2 f6: 01 c0 rjmp .+2 ; 0xfa <.do_clear_bss_start>
000000f8 <.do_clear_bss_loop>: f8: 1d 92 st X+, r1
000000fa <.do_clear_bss_start>: fa: a1 30 cpi r26, 0x01; 1 fc: b1 07 cpc r27, r17 fe: e1 f7 brne .-8 ; 0xf8 <.do_clear_bss_loop> 100: 0e 94 86 00 call 0x10c; 0x10c <main> 104: 0c 94 d2 00 jmp 0x1a4; 0x1a4 <_exit>
00000108 <__bad_interrupt>: 108: 0c 94 00 00 jmp 0; 0x0 <__vectors>
0000010c <main>: 10c: df 93 push r29 10e: cf 93 push r28 110: cd b7 in r28, 0x3d; 61 112: de b7 in r29, 0x3e; 62 114: ee e2 ldi r30, 0x2E; 46 116: f0 e0 ldi r31, 0x00; 0 118: 81 e0 ldi r24, 0x01; 1 11a: 80 83 st Z, r24 11c: ed e2 ldi r30, 0x2D; 45 11e: f0 e0 ldi r31, 0x00; 0 120: 8f e7 ldi r24, 0x7F; 127 122: 80 83 st Z, r24 124: 88 e1 ldi r24, 0x18; 24 126: 0f b6 in r0, 0x3f; 63 128: f8 94 cli 12a: 80 93 60 00 sts 0x0060, r24 12e: 10 92 60 00 sts 0x0060, r1 132: 0f be out 0x3f, r0; 63 134: e6 e4 ldi r30, 0x46; 70 136: f0 e0 ldi r31, 0x00; 0 138: 10 82 st Z, r1 13a: e4 e4 ldi r30, 0x44; 68 13c: f0 e0 ldi r31, 0x00; 0 13e: 10 82 st Z, r1 140: e5 e4 ldi r30, 0x45; 69 142: f0 e0 ldi r31, 0x00; 0 144: 85 e0 ldi r24, 0x05; 5 146: 80 83 st Z, r24 148: e5 e3 ldi r30, 0x35; 53 14a: f0 e0 ldi r31, 0x00; 0 14c: 10 82 st Z, r1 14e: ee e6 ldi r30, 0x6E; 110 150: f0 e0 ldi r31, 0x00; 0 152: 81 e0 ldi r24, 0x01; 1 154: 80 83 st Z, r24 156: 78 94 sei 158: e8 e0 ldi r30, 0x08; 8 15a: f1 e0 ldi r31, 0x01; 1 15c: 80 81 ld r24, Z 15e: 8f 3f cpi r24, 0xFF; 255 160: 21 f4 brne .+8 ; 0x16a <main+0x5e> 162: e8 e0 ldi r30, 0x08; 8 164: f1 e0 ldi r31, 0x01; 1 166: 10 82 st Z, r1 168: f7 cf rjmp .-18 ; 0x158 <main+0x4c> 16a: e8 e0 ldi r30, 0x08; 8 16c: f1 e0 ldi r31, 0x01; 1 16e: 80 81 ld r24, Z 170: 8f 5f subi r24, 0xFF; 255 172: 80 83 st Z, r24 174: f1 cf rjmp .-30 ; 0x158 <main+0x4c>
00000176 <__vector_23>: 176: 1f 92 push r1 178: 0f 92 push r0 17a: 0f b6 in r0, 0x3f; 63 17c: 0f 92 push r0 17e: 11 24 eor r1, r1 180: 8f 93 push r24 182: df 93 push r29 184: cf 93 push r28 186: cd b7 in r28, 0x3d; 61 188: de b7 in r29, 0x3e; 62 18a: 80 91 00 02 lds r24, 0x0200 18e: 8f 5f subi r24, 0xFF; 255 190: 80 93 00 02 sts 0x0200, r24 194: cf 91 pop r28 196: df 91 pop r29 198: 8f 91 pop r24 19a: 0f 90 pop r0 19c: 0f be out 0x3f, r0; 63 19e: 0f 90 pop r0 1a0: 1f 90 pop r1 1a2: 18 95 reti
000001a4 <_exit>: 1a4: f8 94 cli
000001a6 <__stop_program>: 1a6: ff cf rjmp .-2 ; 0x1a6 <__stop_program> Перебрал все типы данных, по логике оставил unsigned short int, результата нет
Причина редактирования: Нарушение п.3.4 правил форума.
|
|
|
|
Сообщений в этой теме
novlev Мой первый блин) Oct 6 2009, 13:08 OLEG_BOS Цитата(novlev @ Oct 6 2009, 16:08) Чиво н... Oct 6 2009, 13:41 novlev static unsigned int i = 0; // i - и... Oct 6 2009, 13:53 Костян Цитата(novlev @ Oct 6 2009, 12:53) static... Oct 6 2009, 13:58 Ledmaster Смысл не в том, где объявлять i, а в том, что она ... Oct 6 2009, 14:04  OLEG_BOS Цитата(Ledmaster @ Oct 6 2009, 17:04) Смы... Oct 6 2009, 14:19 _Pasha Цитата(novlev @ Oct 6 2009, 16:08) Суть п... Oct 6 2009, 13:57 novlev Вот дизасм -
CODE+00000072: 2411 CLR R1 ... Oct 6 2009, 14:02 _Pasha нужен не дизасм, а *.lss Oct 6 2009, 14:07 _Pasha Код18a: 80 91 00 02 lds r24, 0x0200
18e: ... Oct 6 2009, 14:24 novlev Кто такой этот "00000108 <__bad_interrupt... Oct 6 2009, 14:27 _Pasha Цитата(novlev @ Oct 6 2009, 17:27) Кто та... Oct 6 2009, 14:30 novlev Кодunsigned char i = 0x00;
ISR(TIMER0_OVF_vect... Oct 6 2009, 14:32 _Pasha Цитата(novlev @ Oct 6 2009, 17:32) и так ... Oct 6 2009, 14:37  novlev Цитата(_Pasha @ Oct 6 2009, 17:37) Объяви... Oct 6 2009, 14:48   OLEG_BOS Цитата(novlev @ Oct 6 2009, 17:48) Послед... Oct 6 2009, 15:16    novlev Цитата(OLEG_BOS @ Oct 6 2009, 18:16) ОFFT... Oct 6 2009, 17:48 Ledmaster А так?
Кодunsigned char i = 0x00;
ISR(TIMER0_O... Oct 6 2009, 14:43 INT1 Я конечно не спец по Си , но чегото бросилось в гл... Oct 6 2009, 18:31 novlev Цитата(INT1 @ Oct 6 2009, 21:31) Я конечн... Oct 6 2009, 18:46 INT1 Насколько помнится операции над портом (если мы го... Oct 6 2009, 19:08 novlev Цитата(INT1 @ Oct 6 2009, 22:08) наскольк... Oct 6 2009, 19:43 314 Попробовал Ваш пример на отладчике в AVR Studio, т... Oct 6 2009, 20:02 novlev Да, более того, статическая переменная действитель... Oct 6 2009, 20:55 singlskv Цитата(novlev @ Oct 6 2009, 17:08) CODE
... Oct 6 2009, 21:41 novlev Кодif (PORTK == 255)
PORTK = 0;
else
PORTK... Oct 6 2009, 21:46 dimka76 Цитата(novlev @ Oct 7 2009, 01:46) Предме... Oct 7 2009, 06:13 314 Как-то это все больше смахивает на какие-то внешни... Oct 7 2009, 05:49 novlev Цитата(314 @ Oct 7 2009, 08:49) И наверно... Oct 7 2009, 06:04 novlev Цитата(314 @ Oct 7 2009, 08:49) Вот Вам е... Oct 7 2009, 07:31 novlev Всем доброго времени суток, подскажите в чем подво... Oct 15 2009, 10:24 Палыч Цитата(novlev @ Oct 15 2009, 13:24) но в ... Oct 15 2009, 10:44 novlev Спасибо, пока оставлю так. Есть еще один вопрос, ч... Oct 15 2009, 11:04 Палыч Цитата(novlev @ Oct 15 2009, 14:04) что о... Oct 15 2009, 11:12  novlev Цитата(Палыч @ Oct 15 2009, 14:12) Выполн... Oct 15 2009, 11:24 novlev Снова я) Слолкнулся со следующей ситуацией - пишу ... Oct 16 2009, 12:11 novlev Для перезаписи программы, код обязательно располаг... Oct 19 2009, 07:01 novlev Подскажите пожалуйста, после записи программы с ад... Oct 19 2009, 11:28 novlev приветствую всех! Вопрос - как разместить по к... Dec 4 2009, 11:01 novlev Пробовал на асме, - указывал адрес один, а располо... Dec 4 2009, 12:09 mempfis_ Цитата(novlev @ Dec 4 2009, 15:01) привет... Dec 4 2009, 12:23 SasaVitebsk Так это - стандартно
uint8_t const __flash str_q[... Dec 4 2009, 12:38 novlev Это не совсем программное требование, простоя горо... Dec 4 2009, 12:41 novlev Понял, это наверное в IAR-е @0x2 такой синтаксис, ... Dec 4 2009, 14:20 SysRq http://www.nongnu.org/avr-libc/user-manual...#faq_... Dec 4 2009, 16:36 novlev Спасибо, я таким образом указывал адрес для кода п... Dec 11 2009, 12:31 SysRq Цитата(novlev @ Dec 11 2009, 15:31) А как... Dec 11 2009, 13:35 novlev Спасибо, получилось. В программе это выглядит след... Dec 11 2009, 13:41 SysRq Если:Цитата(novlev @ Dec 11 2009, 16:41) ... Dec 11 2009, 14:51 novlev А учитываются только 4 младших, в хексе больше и н... Dec 14 2009, 06:13 Сергей Борщ Цитата(novlev @ Dec 14 2009, 08:13) А учи... Dec 14 2009, 07:55 novlev Я просто пользовался описанием из pdf на контролле... Dec 14 2009, 11:49 Сергей Борщ Цитата(novlev @ Dec 14 2009, 13:49) Так а... Dec 14 2009, 13:08  novlev Цитата(Сергей Борщ @ Dec 14 2009, 16:08) ... Dec 14 2009, 13:46   Сергей Борщ Цитата(novlev @ Dec 14 2009, 15:46) А мож... Dec 14 2009, 13:58 novlev Столкнулся со следующей особенностью программы PON... Jan 11 2010, 13:23 uriy Хоть бы написали как это проявляется Jan 11 2010, 13:39 novlev Проявлялось забавно -
Это если вбить -Wl,--sectio... Jan 11 2010, 14:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|