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

 
 
> KEIL, двоичная форма записи
viael
сообщение Aug 17 2006, 21:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Чето я туплю млин...
Какой префикс в кейле для записи двоичных чисел, а в хелпе не нахожу blink.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Aug 17 2006, 22:14
Сообщение #2


Гуру
******

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



Цитата(viael @ Aug 18 2006, 00:26) *
Какой префикс

В "C" не предусмотрено использование двоичных форматов, что в принципе правильно, поскольку достаточно тяжело для глаз. Для наглядности удобнее, например, дефинировать BIT0....BIT63
и писать в стиле BIT1|BIT7|BIT12.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
viael
сообщение Aug 17 2006, 22:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Цитата(zltigo @ Aug 18 2006, 02:14) *
Цитата(viael @ Aug 18 2006, 00:26) *

Какой префикс

В "C" не предусмотрено использование двоичных форматов, что в принципе правильно, поскольку достаточно тяжело для глаз. Для наглядности удобнее, например, дефинировать BIT0....BIT63
и писать в стиле BIT1|BIT7|BIT12.

О... glare.gif
Привык что в CVAVR a=0b11011111;
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 17 2006, 23:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
viael
сообщение Aug 18 2006, 03:48
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 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 бит.Очень удобно кодировать таблицу для семисегментных индикаторов. a14.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 18 2006, 03:59
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(viael @ Aug 18 2006, 09:48) *
Надо только для 8 бит.Очень удобно кодировать таблицу для семисегментных индикаторов. a14.gif


Обозначьте сегменты дефайнами
Код
#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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- viael   KEIL   Aug 17 2006, 21:26
- - VAI   Автор, по моему, Аскольд Волков. Я немного дополни...   Aug 18 2006, 06:50
- - Halfback   VAI Keil пишет ошибку деления на нуль   Apr 3 2007, 21:59
|- - scifi   Цитата(Halfback @ Apr 3 2007, 22:59) VAI ...   Apr 10 2007, 10:53
|- - SiMM   Цитата(Halfback @ Apr 4 2007, 01:59) VAI ...   Jun 26 2007, 07:07
- - VAI   У меня для MSP, для ARM (в кейле), для Винды приме...   Apr 10 2007, 10:42
- - kolobok0   Цитата(viael @ Aug 17 2006, 22:26) Чето я...   Apr 11 2007, 12:54
- - MiklPolikov   Раньше мой Programmers Notepad понимал запись POR...   Oct 31 2007, 16:59
|- - =L.A.=   Цитата(MiklPolikov @ Oct 31 2007, 20:59) ...   Oct 31 2007, 20:09
||- - MiklPolikov   Огромное спасибо =L.A.= !!!   Nov 1 2007, 02:36
||- - alexander55   Цитата(=L.A.= @ Oct 31 2007, 23:09) можно...   Nov 1 2007, 05:43
|- - bzx   Цитата(MiklPolikov @ Oct 31 2007, 19:59) ...   Nov 1 2007, 06:21
- - =AVR=   Предлагаю выдать человеку Шнобелевскую премию за к...   Oct 31 2007, 17:11
- - rezident   В стандарте Си нет записи бинарных чисел. Эта види...   Oct 31 2007, 17:16


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

 


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


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