Код: Выделить всё
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD = 0xFF;
PORTD = 0b00000000;
while(1)
{
PORTD |= (1<<(PORTD0));
_delay_ms(500);
PORTD &= ~(1<<(PORTD0));
_delay_ms(500);
}
}Код: Выделить всё
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD = 0xFF;
PORTD = 0b00000000;
while(1)
{
PORTD |= (1<<(PORTD0));
_delay_ms(500);
PORTD &= ~(1<<(PORTD0));
_delay_ms(500);
}
}Я конечно все не проверял, но разницы не увидел. Одни и теже значения. Только в первом случае побайтный режим просмотра, во втором пословный (шина данных у памяти программ AVR 16 битная, т.е. слово 16 бит)201bazza писал(а):так совершенно другие значения?
Программа лежит в памяти программ, где то ей надо же находится.201bazza писал(а):Что за память программ, можно поподробнее?
Похоже этот пункт я нашел верно. Находится в свойствах проекта - Configuration Manager...ARV писал(а):есть в настройках проекта Active configuration
С этим сложнее. Не нашел такой пункт меню, нашел нечто похожееARV писал(а):Создаете конфигурацию ОК, добавляете в разделе Custom options опцию -D__OK__,
Код: Выделить всё
#ifdef _OA
#endif // _OAДирективу #if defined студия не понимает. Есть #ifdefARV писал(а):#if defined(__OK__)
Код: Выделить всё
#define ID_CHK // AUTO display driver type chip detect
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef ID_CHK
// #define id 0x7783
#define id 0x9325 // set display driver type here manually
//////////// #define id 0x9341 ////////////
#define readID() id //
#define readReg(val) id // dummy placeholder
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#else
uint32_t id = 0;
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Создаем отдельный хедер, что-то вроде presets.h и туда кидаем все директивы. Включаем в проект. И тут важно помнить, что сишный компайлер не умеет возвращаться, поэтому хедер с директивами должен быть объявлен раньше прочих инклудов, где эти директивы используются.И второй вопрос, как организовать учет версий и учет изменений в коде? Это можно делать автоматически или все делается вручную?
То есть заводится файл *.TXT и ручками прописываются изменения?
Код: Выделить всё
#if defined(__OA__) // Общий анод
....
#elif defined(__OK__) // Общий катод
....
#endifОпция -std=gnu99 есть? Или на вкладке General должно быть что-то про стандарт Си, или в Miscellaneus самостоятельно добавьтеserg_svd писал(а):Значит проблема в том, что я что-то где-то в настройках компилятора не активировал