[an error occurred while processing this directive]
Да и не в PORTA дело.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено хреново 26 июля 2005 г. 19:06
В ответ на: Вот именно. отправлено <font color=gray>Михаил Е.</font> 26 июля 2005 г. 18:43

Напишем так:


typedef struct {
union {
struct {
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
};
unsigned char by;
};
} DBYTE;
volatile unsigned char myvol;
#pragma optimize = s 9
unsigned char CreateByte (void)
{
DBYTE db;
db.by = 0;
db.b7 = 1;
db.b0 = (myvol&1) != 0;
return db.by;
}

Получится:

\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?`
846 volatile unsigned char myvol;
\ myvol:
\ 00000000 DS 1
847 #pragma optimize = s 9

\ In segment CODE, align 2, keep-with-next
848 unsigned char CreateByte (void)
\ CreateByte:
849 {
850 DBYTE db;
851 db.by = 0;
852 db.b7 = 1;
853 db.b0 = (myvol&1) != 0;
\ 00000000 9100.... LDS R16, myvol
854 return db.by;
\ 00000004 E800 LDI R16, 128
\ 00000006 9508 RET
855 }


Те же яйца, только в профиль.


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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru