Probowalem sobie przerobic biblioteki obslugujace LCD (AVR->ARM). Wyglada na to, ze wszystko jest ok, ale napotkalem pewien problem. Mozna go zobrazowac takim programem:
Tzn. problematyczne sa linijki:
Wydawalo mi sie, ze po tej operacji w rejestrze FIO1DIR powinna znalezc sie wartosc : 0x30000000 ale tak nie jest, w ogole dochodzi do zapisu na pierwszym i drugim bajcie tego rejestru, a przeciez zapis powinien odbyc sie tylko na czwartym bajcie (?). Tak wiec co moze byc nie tak?
Zalezy mi na wykorzystaniu czesci portu P1 (osmiu bitow) jako takiego jakby niezaleznego portu (bardzo by mi to ulatwilo przerobienie wspomnianych bibliotek)
Cytat:
#include "lpc214x.h"
#define FIO1DIR3 (*((volatile unsigned long *) 0x3FFFC023)) // 8 (byte)
#define FIO1SET3 (*((volatile unsigned long *) 0x3FFFC03B)) // 8 (byte)
#define FIO1CLR3 (*((volatile unsigned long *) 0x3FFFC03F)) // 8 (byte)
#define FIO1PIN3 (*((volatile unsigned long *) 0x3FFFC037)) // 8 (byte)
int main() {
//konfiguracja portow
SCS = 0x11; //czyil uzywamy szybkich portow GPIO
FIO1PIN3 |= (1<<4);
FIO1PIN3 |= (1<<5);
//petla glowna programu
for(;{
}
}
Tzn. problematyczne sa linijki:
Cytat:
FIO1DIR3 |= (1<<4);
FIO1DIR3 |= (1<<5);
Wydawalo mi sie, ze po tej operacji w rejestrze FIO1DIR powinna znalezc sie wartosc : 0x30000000 ale tak nie jest, w ogole dochodzi do zapisu na pierwszym i drugim bajcie tego rejestru, a przeciez zapis powinien odbyc sie tylko na czwartym bajcie (?). Tak wiec co moze byc nie tak?
Zalezy mi na wykorzystaniu czesci portu P1 (osmiu bitow) jako takiego jakby niezaleznego portu (bardzo by mi to ulatwilo przerobienie wspomnianych bibliotek)