Ahoj, potřebuju nutně poradit, potřebuju rozchodit grafický LCD, ale program, který sem našel je psán v CodeVisionuAVR a Atmel Studio 6.0, který používám ho díky částečné syntaktické nekompatibilitě nezvládne zkompilovat bez chyb. Můžete mi prosím poradit jak kód dopravit? Částečně už sem ho předělal, ale pořád mi hlásí chyby a nevím si už rady.
main - codepad.org/LzE6rLHB, hlavní soubor, zde se mu nelíbí #pragma used+ jinak asi ok
lbr glcd - codepad.org/qfmbHq7M, knihovna příkazů ovládání lcd, zde asi 50x Error expected ‘;’ before numeric constant, přitom se mi nezdá, že by něco chybělo, ale zdá se mi, že definice maker pinů asi nebude správná
#define E_DELAY 3
#define DATAPORT PORTA
#define DATADDR DDRA
#define DATAPIN PINA
#define CS1 PORTC.2
#define CS2 PORTC.3
#define RS PORTC.4
#define RW PORTC.0
#define EN PORTC.1
a pak také asi něco v těch funkcích, protože všechny chyby odkazují na ty konstanty maker (EN, CS1…) takže jakoby před nima chyběl středník, ale ten tam je.
void trigger()
{
EN = 1; //EN high
delay_us(E_DELAY);
EN = 0; //EN low
delay_us(E_DELAY);
}
void glcd_on()
{
//Activate both chips
#ifdef CS_ACTIVE_LOW
CS1 = 0;
CS2 = 0;
#else
CS1 = 1;
CS2 = 1;
#endif
RS = 0; //RS low → command
RW = 0; //RW low → write
DATAPORT = 0x3F; //ON command
trigger();
}
více odkaz nebo příloha
main.c (2.72 KB)
glcd.h (16.7 KB)