Если надо много битовых флагов

В одном проекте, понадобилось много битовых флагов
Выделять на каждый флаг по байту — это роскошь.
имея в STM32 bit-band, написал макрос, может кому то пригодится

//сама переменная, где будут наши флаги,можно заранее проинициализировать
unsigned int BitBandArray=0;
//SRAM_BASE начало памяти
//SRAM_BB_BASE  -  где начинается битбанд алиас памяти 
//объявлено тут stm32f10x.h 
//сам макрос  первый параметр - номер бита, второй  имя перемененной, где биты хранятся
#define BitBand(b,a)  (*((char *)SRAM_BB_BASE+(((int)&a)SRAM_BASE )*32+b*4))
//сами флаги
#define AxelFlag  BitBand(0,BitBandArray)
#define PowerGood BitBand(1,BitBandArray)
#define BatFlag   BitBand(2,BitBandArray)
// и так 32 раза

////////////////
///теперь можем к ним обращаться как к обычным переменным
//присвоение
AxelFlag =1;
//чтение
if(PowerGood ==1)
    {
    }

Git в домашнем хозяйстве.


Тема крайне капитанская, но, оглядываясь назад, мне бы хотелось заставить себя использовать CVS гораздо раньше, чем я начал)

Имея высшее образование по специальности «Радиотехника», и программируя микроконтроллеры на самом нижнем уровне, исходя из сложившихся представлений о программировании (коих до определенного времени хватало), я время от времени от знакомых ребят-программистов, которые интересовались моей деятельностью, слышал о системах контроля версий исходного кода, а также удивленные возгласы после того, как они узнавали, что я таковыми не пользуюсь.

Сам я просто колбасил код на Си и Ассемблере, время от времени сохраняя релизые версии firmware в папочках с соответствующими номерами.
Это, признаться, меня практически не парило, но сейчас я бы так делать не стал.

С тех пор прошло какое-то время, я решил научиться взрослому программированию, сейчас работаю в крупной компании над большим проектом под iOS, но продолжаю разрабатывать железки для своего личного проекта в свободное от работы время.

И, кончено же, я использую Git не только на работе, но и дома — потому что от его использования мы получаем следующий профит…


Читать дальше

Подключение микроконтроллера к локальной сети

Локальная сеть — вещь прикольная и интересная. Место обитания каждого гика, включая его самого, опутано витой парой сверху донизу. Почему бы не использовать всё это на пользу дела?

Тем более, существует микросхема, позволяющая микроконтроллеру прекрасно чувствовать себя в сети Ethernet. А именно, ENC28J60, разработка вражеской компании Microchip. Об её использовании мы и поговорим.

Вообще-то, Ethernet — достаточно обширная тема. В один пост явно не поместится. Так что частей будет несколько.

Эта первая часть, и как обычно, — вводная и обзорная.


Читать дальше