Потихоньку решил переходить на си.
В заголовочном файле есть такая строка
Код: Выделить всё
#define PORTB _SFR_IO8(0x18)чему равно значение _SFR_IO8 ?
Код: Выделить всё
#define PORTB _SFR_IO8(0x18)Потому что не инклюдят в Си эти инклюдники.СЦБист писал(а):а че у меня нету определения _SFR_IO8 ?
Код: Выделить всё
#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))размер int стандартом Си не определен и является платформозависимым. для 8-битной платформы AVR он принят двухбайтным. во избежание недоразумений очень-очень рекомендую всегда использовать платформонезависимые типы данных, определенные стандартом С99 (и, разумеется, всегда использовать компиляцию с поддержкой этого стандарта):СЦБист писал(а):Заметил что тип int - 2 байта
float и double 4 байта
Разве int не 4 а double не 8 ?
Код: Выделить всё
struct A
{
uint8_t a;
uint16_t b;
uint32_t c;
uint64_t d;
};Код: Выделить всё
struct A *a = (struct A *)malloc(sizeof(struct A));Код: Выделить всё
free(a); во-первых, классы работают, но в С++, а не в С.СЦБист писал(а):new и delete тут не работает ((( классы тоже
Код: Выделить всё
ldi R16,Low(RAMEND) ;èíèöèàëèçàöèÿ ñòåêà
out SPL,R16
ldi R16,High(RAMEND) ;èíèöèàëèçàöèÿ ñòåêà
out SPH,R16Ктож против, используйте если надо.СЦБист писал(а):так что, динамика тут не нужно чтоль ?
Как правило это не требуется и скрыто от СИшного программиста. Но при острой необходимости можно поковыряться в startup файле и поменять чего надо.СЦБист писал(а):нужно тулить эту конструкцию ?
Подтвердить не могу, но это разные языки, хотя и похожие.С++ это расширение Си не более того.
Ограничивать область видимости переменных, либо разместить несколько переменных в пересекающихся областях памяти вручную.так что, динамика тут не нужно чтоль ?
а если мне в процессе работы программы больше не понадобятся использование большого
массива структур , на кой хрен мне засирать память ?
Не нужно, компилятор ее вставляет самостоятельно.для нормальной работы вызова обработчиков прерываний , нужно тулить эту конструкцию ?
[/quote]COKPOWEHEU писал(а):[ нужно, компилятор ее вставляет самостоятельно.