Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 28.02.2008, 11:04   #1
VAV
Junior Member
 
Регистрация: 28.02.2008
Возраст: 39
Сообщений: 10
Вес репутации: 99/0
VAV will become famous soon enough
По умолчанию Как в объявленной переменной обозначить биты?

Уважаемые, помогите чайнику!
До этого программировал на ASM-51. Вот начал изучать С для PIC. Осваиваю MicroC. Вроде в общем все нормально и понятно. Но вот столкнулся с проблемкой (для себя конечно). Как в объявленной переменной обозначить биты? Что бы потом можно было с ними напрямую работать

Вот например в ASM-51 обозначаю каждый бит в байте и дальше работаю с ними как с флагами. Как реализовать такое в MicroC ?

Status_prog_DTMF equ 21h
F0_TX_DTMF equ 21h.0
F1_TX_DTMF equ 21h.1
F2_TX_DTMF equ 21h.2
F3_TX_DTMF equ 21h.3
F4_TX_DTMF equ 21h.4
F5_TX_DTMF equ 21h.5

Или вот как обозвать биты портов?

S_G equ p3.7
LED1 equ p3.2
LED2 equ p3.4

Вроде и HELP русскоязычный есть, но как это сделать не просек пока, кроме как (цитата):

« mikroC позволяет получить доступ к отдельным битам 8-битовых переменных, типа char и unsigned short. Просто используйте операцию доступа к элементу структуры (.) с этой переменной, за которой должен следовать один из идентификаторов F0, F1, … , F7, где F7 означает самый старший бит »

Может подскажете ссылочки, где можно посмотреть какие-нибудь готовые проекты на MicroC, посмотреть как люди пишут, поучиться …
VAV вне форума   Ответить с цитированием
Старый 28.02.2008, 11:15   #2
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 44
Сообщений: 3,334
Вес репутации: 2341/102
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Как в объявленной переменной обозначить биты?

Код:
union {
  struct {
    unsigned b0:1;
    unsigned b1:1;
    unsigned b2:1;
    unsigned b3:1;
    unsigned b4:1;
    unsigned b5:1;
    unsigned b6:1;
    unsigned b7:1;
  } Bit;
  unsigned char Byte;
} Fl;

...
Fl.Byte = 0x53;
Fl.Bit.b5 = 1;
vitalka вне форума   Ответить с цитированием
Старый 28.02.2008, 12:08   #3
VAV
Junior Member
 
Регистрация: 28.02.2008
Возраст: 39
Сообщений: 10
Вес репутации: 99/0
VAV will become famous soon enough
По умолчанию Re: Как в объявленной переменной обозначить биты?

Спасибо за подсказку. С битовыми полями разобрался, буду пробовать.
Немного не понял это
Цитата:
Сообщение от vitalka Посмотреть сообщение
...
Fl.Byte = 0x53;
Fl.Bit.b5 = 1;
[/code]
Как всетаки PORTB.0 обозвать LED1 а PORTB.7 - LED2 ?
VAV вне форума   Ответить с цитированием
Старый 28.02.2008, 12:18   #4
SSH
Banned
 
Регистрация: 27.02.2007
Адрес: Красноярск
Возраст: 49
Сообщений: 2,387
Вес репутации: 950/0
SSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to beholdSSH is a splendid one to behold
По умолчанию Re: Как в объявленной переменной обозначить биты?

Например так :
#define LED1 PORTB.0
#define LED2 PORTB.7
SSH вне форума   Ответить с цитированием
Старый 28.02.2008, 15:55   #5
VAV
Junior Member
 
Регистрация: 28.02.2008
Возраст: 39
Сообщений: 10
Вес репутации: 99/0
VAV will become famous soon enough
По умолчанию Re: Как в объявленной переменной обозначить биты?

Ура!!!! Все получилось! И через битовое поле тоже. Супер!! Идем дальше!

#define LED1 PORTB.F0
#define LED2 PORTB.F7
VAV вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно побитово обращаться к переменной? djdiablo Продукция MICROCHIP 25 24.05.2008 23:42
Как быстро устанавливать и проверять биты в 32-разрядной переменной? На С IVV Продукция MICROCHIP 12 20.12.2007 15:23


Часовой пояс GMT +3, время: 18:03.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot