|
KEIL, двоичная форма записи |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 17 2006, 22:43
|
Местный
  
Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979

|
Цитата(zltigo @ Aug 18 2006, 02:14)  Цитата(viael @ Aug 18 2006, 00:26)  Какой префикс
В "C" не предусмотрено использование двоичных форматов, что в принципе правильно, поскольку достаточно тяжело для глаз. Для наглядности удобнее, например, дефинировать BIT0....BIT63 и писать в стиле BIT1|BIT7|BIT12. О... Привык что в CVAVR a=0b11011111;
|
|
|
|
|
Aug 17 2006, 23:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(viael @ Aug 18 2006, 01:43)  Привык что в CVAVR a=0b11011111; Ну так и выдерите из *.h дефиниции (не думаю, что там компилятор такое понимает) или напишите сами #define 0b00000000 0 #define 0b00000001 1 ..... #define 0b11111111 255 Но лучше не надо глаза ломать... Особенно для 32 бит 0b00001000000001000000000001000000 Про 64 вообще молчу :-)
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 18 2006, 03:48
|
Местный
  
Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979

|
Цитата(zltigo @ Aug 18 2006, 03:27)  Цитата(viael @ Aug 18 2006, 01:43)  Привык что в CVAVR a=0b11011111;
Ну так и выдерите из *.h дефиниции (не думаю, что там компилятор такое понимает) или напишите сами #define 0b00000000 0 #define 0b00000001 1 ..... #define 0b11111111 255 Но лучше не надо глаза ломать... Особенно для 32 бит 0b00001000000001000000000001000000 Про 64 вообще молчу :-) Надо только для 8 бит.Очень удобно кодировать таблицу для семисегментных индикаторов.
|
|
|
|
|
Aug 18 2006, 03:59
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(viael @ Aug 18 2006, 09:48)  Надо только для 8 бит.Очень удобно кодировать таблицу для семисегментных индикаторов.  Обозначьте сегменты дефайнами Код #ifndef _I_SEG7_DEF_ #define SEG7_A 0x01 //разряд соответствующий сегменту A #define SEG7_B 0x02 //разряд соответствующий сегменту B #define SEG7_C 0x04 //разряд соответствующий сегменту C #define SEG7_D 0x08 //разряд соответствующий сегменту D #define SEG7_E 0x10 //разряд соответствующий сегменту E #define SEG7_F 0x20 //разряд соответствующий сегменту F #define SEG7_G 0x40 //разряд соответствующий сегменту G #define SEG7_H 0x80 //разряд соответствующий сегменту H #define _I_SEG7_DEF_ 1 #endif _I_SEG7_DEF_ и пишите строки вида Код const unsigned char seg7TabNum[]= { SEG7_A+SEG7_B+SEG7_C+SEG7_D+SEG7_E+SEG7_F, // 0 SEG7_B+SEG7_C, // 1 SEG7_A+SEG7_B+SEG7_G+SEG7_E+SEG7_D, // 2 SEG7_A+SEG7_B+SEG7_C+SEG7_D+SEG7_G, // 3 SEG7_F+SEG7_G+SEG7_B+SEG7_C, // 4 SEG7_A+SEG7_F+SEG7_G+SEG7_C+SEG7_D, // 5 SEG7_A+SEG7_F+SEG7_E+SEG7_D+SEG7_C+SEG7_G, // 6 SEG7_A+SEG7_B+SEG7_C, // 7 SEG7_A+SEG7_B+SEG7_C+SEG7_D+SEG7_E+SEG7_F+SEG7_G, // 8 SEG7_A+SEG7_B+SEG7_C+SEG7_D+SEG7_F+SEG7_G // 9 }; По-моему так гораздо понятнее и удобнее. Даже если индикатор перевернете вверх ногами, то достаточно будет поменять дефайны соответствия сегментов и пинов управления ими и не трогать таблицу.
Сообщение отредактировал rezident - Aug 18 2006, 04:01
|
|
|
|
|
Apr 11 2007, 12:54
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(viael @ Aug 17 2006, 22:26)  Чето я туплю млин... Какой префикс в кейле для записи двоичных чисел, а в хелпе не нахожу  для азма - как всегда.. на хвостике h - шестнадцатиричное значение... на хвостике b - двоичное... (круглый)
|
|
|
|
|
Jun 26 2007, 07:07
|
Группа: Новичок
Сообщений: 5
Регистрация: 8-07-05
Пользователь №: 6 631

|
Цитата(Halfback @ Apr 4 2007, 01:59)  VAIKeil пишет ошибку деления на нуль  Если заменить операции деления и взятия модуля числа на более подходящие, получим макрос, работающий при любых условиях: Код #define BINARY(bits)\ ((unsigned int)(\ (0##bits&7)|\ ((0##bits>>3)&7)<<1|\ ((0##bits>>6)&7)<<2|\ ((0##bits>>9)&7)<<3|\ ((0##bits>>12)&7)<<4|\ ((0##bits>>15)&7)<<5|\ ((0##bits>>18)&7)<<6|\ ((0##bits>>21)&7)<<7|\ ((0##bits>>24)&7)<<8|\ ((0##bits>>27)&7)<<9|\ ((0##bits>>30)&7)<<10|\ ((0##bits>>33)&7)<<11|\ ((0##bits>>36)&7)<<12|\ ((0##bits>>39)&7)<<13|\ ((0##bits>>42)&7)<<14|\ ((0##bits>>45)&7)<<15))
|
|
|
|
Guest_=AVR=_*
|
Oct 31 2007, 17:11
|
Guests

|
Предлагаю выдать человеку Шнобелевскую премию за компиляцию посредством PN
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|