SZNX LAN 100M - drivers (VID_35B5&PID_3500)
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Компьютерная повседневность
- Просмотров: 50
Crowdfunding platforms
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Электроника / cхемотехника
- Просмотров: 45
Bit band cortex m3 stm32
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование микроконтроллеров
- Просмотров: 9086
Технология bit-band в Cortex-M3 — это выделение некоторой области памяти, которая служит для побитового доступа к регистрам. Эта технология позволяет напрямую управлять состоянием портов ввода-вывода, что облегчает имплементацию последовательных интерфейсов.
В плате STM32 Value line discovery(процессор SM32F100RBT6B)имеется два светодиода: зелёного и синего цветов.
На PC9 – зелёный и на PC8 - синий.
Обычным путём установка бита на PC9 происходит следующим образом:
GPIOC->ODR|=GPIO_ODR_ODR9; //set
Снятие:
GPIOC->ODR&=~GPIO_ODR_ODR9; //reset
Или
GPIOC->BSRR=GPIO_BSRR_BS9; // set
GPIOC->BSRR=GPIO_BSRR_BR9; // reset
Аналогично для PC8.
Приступим. Пишу относительно IAR, статья же актуальна для любого компилятора. Будем управлять регистром ODR PC9 и PC8.
Магия исключающего ИЛИ
- Информация о материале
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 12255
В математике обычное ИЛИ (включающее, OR) встречается гораздо чаще исключающего (также называемого XOR).
Например, когда Вы пишете выражение pVq, которое читается ”p ИЛИ q”, это так называемое включающее ИЛИ. В этом случае это выражение ИСТИНА (true), если p = ИСТИНА или q = ИСТИНА, или и p = ИСТИНА и q = ИСТИНА.
Включающее ИЛИ используется в обычном понимании операции ИЛИ (OR), оно используется чаще в логике, нежели исключающее ИЛИ (XOR).
Преобразование числа в строку со сдвигом вправо
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 2537
uint8_t * Itoa_R(uint8_t * StrDst, uint8_t SizeOfStr, int16_t Number){ // right aligment version of Itoa uint8_t * pStrDst = &StrDst[SizeOfStr - 2]; int16_t Tmp; uint8_t i; // just the index uint8_t Sign = 0; if(Number < 0 )Sign =1; Number = (Number < 0) ? -Number : Number; if(!Number){ i = 2; *pStrDst-- = '0';} else for(i = 1; i < SizeOfStr && Number; i++){ Tmp = Number%10; *pStrDst-- = Tmp + 0x30; Number /= 10; } if (Sign){ *pStrDst-- ='-'; i++; } while(i < SizeOfStr){ *pStrDst-- = ' '; i++; } return StrDst; }
Страница 1 из 190