Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено колян безпарольный 03 декабря 2004 г. 23:14
В ответ на: Видимо, ты не весь код привел и сто-то осталось "за кадром". отправлено Bill 03 декабря 2004 г. 22:58


#pragma language=extended
#include
#include


void main(void)
{ unsigned int i;
DDRB =0xFF;
DDRD =0xFF;
while(1)
{for (i=0;i<20000;i++) _WDR();
PORTD=0;
PORTB=0;
for (i=0;i<2000;i++) _WDR();
PORTD=0xff;
PORTB=0xff;
_WDR();
}
}


лист

##############################################################################
# #
# IAR Atmel AVR C/EC++ Compiler V2.27B/WIN, Evaluation Version17/Jan/2000 01:35:13 #
# Copyright 1996-2002 IAR Systems. All rights reserved. #
# #
# Source file = D:\work\Projects\Mikron\tese\qqq.c #
# Command line = --cpu=2313 -mt -o D:\work\Projects\Mikron\tese\Release\ #
# Obj\ -I D:\WORK\COMP-CPU\C\IAR2_31\avr\SRC\CLIB\INC\ #
# -lC D:\work\Projects\Mikron\tese\Release\List\ -lA #
# D:\work\Projects\Mikron\tese\Release\List\ -e #
# --initializers_in_flash -z0 -DENABLE_BIT_DEFINITIONS #
# D:\work\Projects\Mikron\tese\qqq.c #
# List file = D:\work\Projects\Mikron\tese\Release\List\qqq.lst #
# Object file = D:\work\Projects\Mikron\tese\Release\Obj\qqq.r90 #
# #
# #
##############################################################################

1 #pragma language=extended
2 #include

\ In segment ABSOLUTE, at 0x31
\ union volatile __io _A_DDRD;
\ _A_DDRD:
\ 00000000 DS 1

\ In segment ABSOLUTE, at 0x32
\ union volatile __io _A_PORTD;
\ _A_PORTD:
\ 00000000 DS 1

\ In segment ABSOLUTE, at 0x37
\ union volatile __io _A_DDRB;
\ _A_DDRB:
\ 00000000 DS 1

\ In segment ABSOLUTE, at 0x38
\ union volatile __io _A_PORTB;
\ _A_PORTB:
\ 00000000 DS 1
3 #include
4
5

\ In segment CODE, align 2, keep-with-next
6 void main(void)
7 { unsigned int i;
8 DDRB =0xFF;
\ __nearfunc void main();
\ main:
\ 00000000 EF0F LDI R16,255
\ 00000002 BB07 OUT 0x17,R16
9 DDRD =0xFF;
\ 00000004 EF0F LDI R16,255
\ 00000006 BB01 OUT 0x11,R16
\ 00000008 C00B RJMP ??main_0
10 while(1)
11 {for (i=0;i<20000;i++) _WDR();
12 PORTD=0;
13 PORTB=0;
14 for (i=0;i<2000;i++) _WDR();
\ ??main_1:
\ 0000000A 95A8 WDR
\ 0000000C 9631 ADIW R31 : R30,1
\ ??main_2:
\ 0000000E 3DE0 CPI R30,208
\ 00000010 E007 LDI R16,7
\ 00000012 07F0 CPC R31,R16
\ 00000014 F3D0 BRCS ??main_1
15 PORTD=0xff;
\ 00000016 EF0F LDI R16,255
\ 00000018 BB02 OUT 0x12,R16
16 PORTB=0xff;
\ 0000001A EF0F LDI R16,255
\ 0000001C BB08 OUT 0x18,R16
17 _WDR();
\ 0000001E 95A8 WDR
\ ??main_0:
\ 00000020 E0E0 LDI R30,0
\ 00000022 E0F0 LDI R31,0
\ 00000024 C002 RJMP ??main_3
\ ??main_4:
\ 00000026 95A8 WDR
\ 00000028 9631 ADIW R31 : R30,1
\ ??main_3:
\ 0000002A 32E0 CPI R30,32
\ 0000002C E40E LDI R16,78
\ 0000002E 07F0 CPC R31,R16
\ 00000030 F3D0 BRCS ??main_4
\ 00000032 E000 LDI R16,0
\ 00000034 BB02 OUT 0x12,R16
\ 00000036 E000 LDI R16,0
\ 00000038 BB08 OUT 0x18,R16
\ 0000003A E0E0 LDI R30,0
\ 0000003C E0F0 LDI R31,0
\ 0000003E CFE7 RJMP ??main_2
18 }
19 }
20

Maximum stack usage in bytes:

Function CSTACK RSTACK
-------- ------ ------
main 0 0


4 bytes in segment ABSOLUTE
64 bytes in segment CODE

64 bytes of CODE memory
0 bytes of DATA memory (+ 4 bytes shared)

Errors: none
Warnings: none



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru