реклама на сайте
подробности

 
 
> Мой первый блин), Перехожу на Си
novlev
сообщение Oct 6 2009, 13:08
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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) то все норм. Чиво не так сделал?
Заранее спасибо.
Причина редактирования: Нарушение правил цитирования исходников.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novlev
сообщение Oct 6 2009, 14:02
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 116
Регистрация: 24-09-06
Пользователь №: 20 645



Вот дизасм -
CODE
+00000072: 2411 CLR R1 Clear Register
+00000073: BE1F OUT 0x3F,R1 Out to I/O location
+00000074: EFCF SER R28 Set Register
+00000075: E2D1 LDI R29,0x21 Load immediate
+00000076: BFDE OUT 0x3E,R29 Out to I/O location
+00000077: BFCD OUT 0x3D,R28 Out to I/O location
+00000078: E012 LDI R17,0x02 Load immediate
+00000079: E0A0 LDI R26,0x00 Load immediate
+0000007A: E0B2 LDI R27,0x02 Load immediate
+0000007B: C001 RJMP PC+0x0002 Relative jump
+0000007C: 921D ST X+,R1 Store indirect and postincrement
+0000007D: 30A2 CPI R26,0x02 Compare with immediate
+0000007E: 07B1 CPC R27,R17 Compare with carry
+0000007F: F7E1 BRNE PC-0x03 Branch if not equal
+00000080: 940E0086 CALL 0x00000086 Call subroutine
+00000082: 940C0103 JMP 0x00000103 Jump
+00000084: 940C0000 JMP 0x00000000 Jump
+00000086: 93DF PUSH R29 Push register on stack
+00000087: 93CF PUSH R28 Push register on stack
+00000088: B7CD IN R28,0x3D In from I/O location
+00000089: B7DE IN R29,0x3E In from I/O location
+0000008A: E2EE LDI R30,0x2E Load immediate
+0000008B: E0F0 LDI R31,0x00 Load immediate
+0000008C: E081 LDI R24,0x01 Load immediate
+0000008D: 8380 STD Z+0,R24 Store indirect with displacement
+0000008E: E2ED LDI R30,0x2D Load immediate
+0000008F: E0F0 LDI R31,0x00 Load immediate
+00000090: E78F LDI R24,0x7F Load immediate
+00000091: 8380 STD Z+0,R24 Store indirect with displacement
+00000092: E188 LDI R24,0x18 Load immediate
+00000093: B60F IN R0,0x3F In from I/O location
+00000094: 94F8 CLI Global Interrupt Disable
+00000095: 93800060 STS 0x0060,R24 Store direct to data space
+00000097: 92100060 STS 0x0060,R1 Store direct to data space
+00000099: BE0F OUT 0x3F,R0 Out to I/O location
+0000009A: E4E6 LDI R30,0x46 Load immediate
+0000009B: E0F0 LDI R31,0x00 Load immediate
+0000009C: 8210 STD Z+0,R1 Store indirect with displacement
+0000009D: E4E4 LDI R30,0x44 Load immediate
+0000009E: E0F0 LDI R31,0x00 Load immediate
+0000009F: 8210 STD Z+0,R1 Store indirect with displacement
+000000A0: E4E5 LDI R30,0x45 Load immediate
+000000A1: E0F0 LDI R31,0x00 Load immediate
+000000A2: E085 LDI R24,0x05 Load immediate
+000000A3: 8380 STD Z+0,R24 Store indirect with displacement
+000000A4: E3E5 LDI R30,0x35 Load immediate
+000000A5: E0F0 LDI R31,0x00 Load immediate
+000000A6: 8210 STD Z+0,R1 Store indirect with displacement
+000000A7: E6EE LDI R30,0x6E Load immediate
+000000A8: E0F0 LDI R31,0x00 Load immediate
+000000A9: E081 LDI R24,0x01 Load immediate
+000000AA: 8380 STD Z+0,R24 Store indirect with displacement
+000000AB: 9478 SEI Global Interrupt Enable
+000000AC: E0E8 LDI R30,0x08 Load immediate
+000000AD: E0F1 LDI R31,0x01 Load immediate
+000000AE: 8180 LDD R24,Z+0 Load indirect with displacement
+000000AF: 3F8F CPI R24,0xFF Compare with immediate
+000000B0: F421 BRNE PC+0x05 Branch if not equal
+000000B1: E0E8 LDI R30,0x08 Load immediate
+000000B2: E0F1 LDI R31,0x01 Load immediate
+000000B3: 8210 STD Z+0,R1 Store indirect with displacement
+000000B4: CFF7 RJMP PC-0x0008 Relative jump
+000000B5: E0E8 LDI R30,0x08 Load immediate
+000000B6: E0F1 LDI R31,0x01 Load immediate
+000000B7: 8180 LDD R24,Z+0 Load indirect with displacement
+000000B8: 5F8F SUBI R24,0xFF Subtract immediate
+000000B9: 8380 STD Z+0,R24 Store indirect with displacement
+000000BA: CFF1 RJMP PC-0x000E Relative jump
+000000BB: 921F PUSH R1 Push register on stack
+000000BC: 920F PUSH R0 Push register on stack
+000000BD: B60F IN R0,0x3F In from I/O location
+000000BE: 920F PUSH R0 Push register on stack
+000000BF: 2411 CLR R1 Clear Register
+000000C0: 932F PUSH R18 Push register on stack
+000000C1: 938F PUSH R24 Push register on stack
+000000C2: 939F PUSH R25 Push register on stack
+000000C3: 93AF PUSH R26 Push register on stack
+000000C4: 93BF PUSH R27 Push register on stack
+000000C5: 93EF PUSH R30 Push register on stack
+000000C6: 93FF PUSH R31 Push register on stack
+000000C7: 93DF PUSH R29 Push register on stack
+000000C8: 93CF PUSH R28 Push register on stack
+000000C9: D000 RCALL PC+0x0001 Relative call subroutine
+000000CA: 920F PUSH R0 Push register on stack
+000000CB: B7CD IN R28,0x3D In from I/O location
+000000CC: B7DE IN R29,0x3E In from I/O location
+000000CD: 91800200 LDS R24,0x0200 Load direct from data space
+000000CF: 91900201 LDS R25,0x0201 Load direct from data space
+000000D1: 839B STD Y+3,R25 Store indirect with displacement
+000000D2: 838A STD Y+2,R24 Store indirect with displacement
+000000D3: 8219 STD Y+1,R1 Store indirect with displacement
+000000D4: 818A LDD R24,Y+2 Load indirect with displacement
+000000D5: 819B LDD R25,Y+3 Load indirect with displacement
+000000D6: EF2F SER R18 Set Register
+000000D7: 3F80 CPI R24,0xF0 Compare with immediate
+000000D8: 0792 CPC R25,R18 Compare with carry
+000000D9: F411 BRNE PC+0x03 Branch if not equal
+000000DA: E081 LDI R24,0x01 Load immediate
+000000DB: 8389 STD Y+1,R24 Store indirect with displacement
+000000DC: 818A LDD R24,Y+2 Load indirect with displacement
+000000DD: 819B LDD R25,Y+3 Load indirect with displacement
+000000DE: 9601 ADIW R24,0x01 Add immediate to word
+000000DF: 93900201 STS 0x0201,R25 Store direct to data space
+000000E1: 93800200 STS 0x0200,R24 Store direct to data space
+000000E3: 8199 LDD R25,Y+1 Load indirect with displacement
+000000E4: 2399 TST R25 Test for Zero or Minus
+000000E5: F061 BREQ PC+0x0D Branch if equal
+000000E6: E2AE LDI R26,0x2E Load immediate
+000000E7: E0B0 LDI R27,0x00 Load immediate
+000000E8: E2EE LDI R30,0x2E Load immediate
+000000E9: E0F0 LDI R31,0x00 Load immediate
+000000EA: 8190 LDD R25,Z+0 Load indirect with displacement
+000000EB: E081 LDI R24,0x01 Load immediate
+000000EC: 2789 EOR R24,R25 Exclusive OR
+000000ED: 938C ST X,R24 Store indirect
+000000EE: 92100201 STS 0x0201,R1 Store direct to data space
+000000F0: 92100200 STS 0x0200,R1 Store direct to data space
+000000F2: 900F POP R0 Pop register from stack
+000000F3: 900F POP R0 Pop register from stack
+000000F4: 900F POP R0 Pop register from stack
+000000F5: 91CF POP R28 Pop register from stack
+000000F6: 91DF POP R29 Pop register from stack
+000000F7: 91FF POP R31 Pop register from stack
+000000F8: 91EF POP R30 Pop register from stack
+000000F9: 91BF POP R27 Pop register from stack
+000000FA: 91AF POP R26 Pop register from stack
+000000FB: 919F POP R25 Pop register from stack
+000000FC: 918F POP R24 Pop register from stack
+000000FD: 912F POP R18 Pop register from stack
+000000FE: 900F POP R0 Pop register from stack
+000000FF: BE0F OUT 0x3F,R0 Out to I/O location
+00000100: 900F POP R0 Pop register from stack
+00000101: 901F POP R1 Pop register from stack
+00000102: 9518 RETI Interrupt return
+00000103: 94F8 CLI Global Interrupt Disable
+00000104: CFFF RJMP PC-0x0000 Relative jump
+00000105: 90FF POP R15 Pop register from stack
+00000106: BE0F OUT 0x3F,R0 Out to I/O location
+00000107: 900F POP R0 Pop register from stack
+00000108: 901F POP R1 Pop register from stack
+00000109: 9518 RETI Interrupt return
+0000010A: 921F PUSH R1 Push register on stack
+0000010B: 920F PUSH R0 Push register on stack
+0000010C: B60F IN R0,0x3F In from I/O location
+0000010D: 920F PUSH R0 Push register on stack
+0000010E: 2411 CLR R1 Clear Register
+0000010F: 932F PUSH R18 Push register on stack
+00000110: 938F PUSH R24 Push register on stack
+00000111: 939F PUSH R25 Push register on stack
+00000112: 93AF PUSH R26 Push register on stack
+00000113: 93BF PUSH R27 Push register on stack
+00000114: 93EF PUSH R30 Push register on stack
+00000115: 93FF PUSH R31 Push register on stack
+00000116: 93DF PUSH R29 Push register on stack
+00000117: 93CF PUSH R28 Push register on stack
+00000118: D000 RCALL PC+0x0001 Relative call subroutine
+00000119: 920F PUSH R0 Push register on stack
+0000011A: B7CD IN R28,0x3D In from I/O location
+0000011B: B7DE IN R29,0x3E In from I/O location
+0000011C: 91800200 LDS R24,0x0200 Load direct from data space
+0000011E: 91900201 LDS R25,0x0201 Load direct from data space
+00000120: 839B STD Y+3,R25 Store indirect with displacement
+00000121: 838A STD Y+2,R24 Store indirect with displacement
+00000122: 8219 STD Y+1,R1 Store indirect with displacement
+00000123: 818A LDD R24,Y+2 Load indirect with displacement
+00000124: 819B LDD R25,Y+3 Load indirect with displacement
+00000125: EF2F SER R18 Set Register
+00000126: 3F80 CPI R24,0xF0 Compare with immediate
+00000127: 0792 CPC R25,R18 Compare with carry
+00000128: F411 BRNE PC+0x03 Branch if not equal
+00000129: E081 LDI R24,0x01 Load immediate
+0000012A: 8389 STD Y+1,R24 Store indirect with displacement
+0000012B: 818A LDD R24,Y+2 Load indirect with displacement
+0000012C: 819B LDD R25,Y+3 Load indirect with displacement
+0000012D: 9601 ADIW R24,0x01 Add immediate to word
+0000012E: 93900201 STS 0x0201,R25 Store direct to data space
+00000130: 93800200 STS 0x0200,R24 Store direct to data space
+00000132: 8199 LDD R25,Y+1 Load indirect with displacement
+00000133: 2399 TST R25 Test for Zero or Minus
+00000134: F061 BREQ PC+0x0D Branch if equal
+00000135: E2AE LDI R26,0x2E Load immediate
+00000136: E0B0 LDI R27,0x00 Load immediate
+00000137: E2EE LDI R30,0x2E Load immediate
+00000138: E0F0 LDI R31,0x00 Load immediate
+00000139: 8190 LDD R25,Z+0 Load indirect with displacement
+0000013A: E081 LDI R24,0x01 Load immediate
+0000013B: 2789 EOR R24,R25 Exclusive OR
+0000013C: 938C ST X,R24 Store indirect
+0000013D: 92100201 STS 0x0201,R1 Store direct to data space
+0000013F: 92100000 STS 0x0000,R1 Store direct to data space
+00000141: 900F POP R0 Pop register from stack
+00000142: 900F POP R0 Pop register from stack
+00000143: 900F POP R0 Pop register from stack
+00000144: 91CF POP R28 Pop register from stack
+00000145: 91DF POP R29 Pop register from stack
+00000146: 91FF POP R31 Pop register from stack
+00000147: 91EF POP R30 Pop register from stack
+00000148: 91BF POP R27 Pop register from stack
+00000149: 91AF POP R26 Pop register from stack
+0000014A: 919F POP R25 Pop register from stack
+0000014B: 918F POP R24 Pop register from stack
+0000014C: 912F POP R18 Pop register from stack
+0000014D: 900F POP R0 Pop register from stack
+0000014E: BE0F OUT 0x3F,R0 Out to I/O location
+0000014F: 900F POP R0 Pop register from stack
+00000150: 901F POP R1 Pop register from stack
+00000151: 9518 RETI Interrupt return
+00000152: 94F8 CLI Global Interrupt Disable
+00000153: CFFF RJMP PC-0x0000 Relative jump


Может надо стек настроить? или еще что...
Причина редактирования: Нарушение правил цитирования исходников.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - _Pasha   нужен не дизасм, а *.lss   Oct 6 2009, 14:07
- - novlev   вот листинг, прикрепить файл не получилось. CODEts...   Oct 6 2009, 14:16
- - _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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 14:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.02105 секунд с 7
ELECTRONIX ©2004-2016