MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )



... при чем тут IAR - C он и в Африке C. А вообще, чтобы не запутаться, лучше ИМХО указывать явно uint8_t, uint16_t, uint32_t, int32_t и т.д. ELcat либо "штурмуй" С, либо учи ARM-ассемблер (а лучше все вместеELcat писал(а):Как в IAR обозначаются типы памяти при создании массива? Да и вообще какие есть типы переменных?
А где ж тогда переменные хранить? 24Сххх цеплять? Я вроде как видел eeprom в некоторых ARM-овских процах.Satyr писал(а):eeprom в современных МК большая экзотика. про него сразу забудем.
Flash program memory, EEPROM data memory, SRAM data memory, registers and I/O
ports are organized within the same linear 4 Gbyte address space.
– Up to 384 Kbytes of Flash program memory and up to 12 Kbytes of data EEPROM
Зависит от того, что это за данные, сколько их и как часто обновлять. И в каких условиях работает устройство.ELcat писал(а):А где ж тогда переменные хранить? 24Сххх цеплять? Я вроде как видел eeprom в некоторых ARM-овских процах.Satyr писал(а):eeprom в современных МК большая экзотика. про него сразу забудем.

... потому что С в CVAVR отличается от С-стандарта. ПоробуйELcat писал(а):Почему в CVAVR такое запросто канает, а здесь нет?
Код: Выделить всё
#define Blue (GPIOB->ODR & GPIO_ODR_ODR_6)
#define Green (GPIOB->ODR & GPIO_ODR_ODR_7)Flash, последний сегмент выделите под хранение. Если организовать как кольцевой буфер, то количество циклов перезаписи увеличится многократноА где ж тогда переменные хранить? 24Сххх цеплять?
Не помоглоChipKiller писал(а): Поробуй.. и вообще с макросами поаккуратнееКод: Выделить всё
#define Blue (GPIOB->ODR & GPIO_ODR_ODR_6) #define Green (GPIOB->ODR & GPIO_ODR_ODR_7)![]()
ну подумайте что будет если подставить ваш макрос в выражение Green=0; Бред, поэтому не скомпилится.Не помогло
Код: Выделить всё
#define Blue(b) if (b) GPIOB->ODR |= GPIO_ODR_ODR_6; else GPIOB->ODR &= ~GPIO_ODR_ODR_6;
Blue(0); Blue(1);
Да, так работает. Но неужели нету какого-то более прямого обращения к регистру порта или его конкретному биту???polyname писал(а): Нужно как-то так:Код: Выделить всё
#define Blue(b) if (b) GPIOB->ODR |= GPIO_ODR_ODR_6; else GPIOB->ODR &= ~GPIO_ODR_ODR_6; Blue(0); Blue(1);
... самый "прямой"ELcat писал(а):Но неужели нету какого-то более прямого обращения к регистру порта или его конкретному биту???
..плюс в том что работая через bit banding не нужно думать о маске для остальных разрядов порта (ну и есть регистр GPIOx_BSRR для stm32f1xx - как он называется для stm32l1xx уточни )ChipKiller писал(а): вообще то для "ногодрыга" у STM32 есть bit banding.....