C-ből Bascomba!
Az eredeti lcd-routines.h-ben azért nem találtad a DB4-7 kiosztását, mert
azt nem is definiálták benne, ugyanis a PD0-3-at használta erre a program, mint az a lcd-routines.c ben lévő lcd_send függvényéből kiderül. Kicsit részletesebben: a #define LCD_PORT PORTD azt jelenti, hogy a programban
minden olyan helyen, ahol szerepel az LCD_PORT kifejezés, oda a PORTD lesz behelyettesítve. Nézd meg a lcd-routines.c ben az lcd_send függvényt.
Abban van egy ilyen sor:
LCD_PORT = (LCD_PORT & 0xF0) | ((data >> 4) & 0x0F);
A fentiek szerint az LCD_PORT az nem más mint PORTD.
Az (LCD_PORT & 0xF0) azt jelenti, hogy a PORTD felső 4 bitjét meghagyom,
míg az alsó négyet kinullázom. A ((data >> 4) & 0x0F azt jelenti, hogy a
data-t jobra léptetem 4-el, majd a felső 4 bitjét nullázom, alsó 4 bitjét meghagyom. A két utasítást a | jellel vagyolom. Az eredmény: a PORTD felső 4 bitje változatlan, míg az alsó négy bitjén megjelenik a data felső 4 bitje.
Az LCD_PORT = (LCD_PORT & 0xF0) | (data & 0x0F); utasítással pedig
a data alsó 4 bitje van kirakva PORTD alsó 4 bitjére míg a felső 4 bit változatlanul van hagyva. Arra a kérdésre, hogy előszőr miért a felső majd az alsó 4 bitjét teszi ki a data-nak, megtalálod a választ az LCD adatlapjában, a 4 bites működésmódnál.
[/b]
azt nem is definiálták benne, ugyanis a PD0-3-at használta erre a program, mint az a lcd-routines.c ben lévő lcd_send függvényéből kiderül. Kicsit részletesebben: a #define LCD_PORT PORTD azt jelenti, hogy a programban
minden olyan helyen, ahol szerepel az LCD_PORT kifejezés, oda a PORTD lesz behelyettesítve. Nézd meg a lcd-routines.c ben az lcd_send függvényt.
Abban van egy ilyen sor:
LCD_PORT = (LCD_PORT & 0xF0) | ((data >> 4) & 0x0F);
A fentiek szerint az LCD_PORT az nem más mint PORTD.
Az (LCD_PORT & 0xF0) azt jelenti, hogy a PORTD felső 4 bitjét meghagyom,
míg az alsó négyet kinullázom. A ((data >> 4) & 0x0F azt jelenti, hogy a
data-t jobra léptetem 4-el, majd a felső 4 bitjét nullázom, alsó 4 bitjét meghagyom. A két utasítást a | jellel vagyolom. Az eredmény: a PORTD felső 4 bitje változatlan, míg az alsó négy bitjén megjelenik a data felső 4 bitje.
Az LCD_PORT = (LCD_PORT & 0xF0) | (data & 0x0F); utasítással pedig
a data alsó 4 bitje van kirakva PORTD alsó 4 bitjére míg a felső 4 bit változatlanul van hagyva. Arra a kérdésre, hogy előszőr miért a felső majd az alsó 4 bitjét teszi ki a data-nak, megtalálod a választ az LCD adatlapjában, a 4 bites működésmódnál.
[/b]
www.atmel.com
Mint az AVR-Studo-t általában.
Ha a 4.19-et töltöd le, abban a 3 SP már alapban benne van...
Az 5.0-t passzolom (nincs 1.5 GB fölös helyem )
Mint az AVR-Studo-t általában.
Ha a 4.19-et töltöd le, abban a 3 SP már alapban benne van...
Az 5.0-t passzolom (nincs 1.5 GB fölös helyem )