Forum: Mikrocontroller und Digitale Elektronik Problem mit dem Präprozessor - wo liegt der Unterschied


von Philipp (Gast)


Lesenswert?

Hallo,
Kann mir jemand sagen, wo bei folgenden Präprozessor direktiven der 
Unterschied liegt?

funktioniert:
1
#define PERIPH_BASE                 ((unsigned long)0x40000000) 
2
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
3
#define USART1_BASE                (APB2PERIPH_BASE + 0x3800)
4
5
(*((volatile unsigned long*)((USART1_BASE)+(0x04)))) = cString[i];

funktioniert nicht:
1
#define USART1_BASE       ((unsigned long)0x40018300)
2
#define USART1_DR           (*((volatile unsigned long*)((USART1_BASE)+(0x04))))
3
4
USART1_DR = cString[i];

Ich bin echt am verzweifeln.
Ich kann mir einfach nicht erklären, warum das Obere funktioniert und 
das Untere nicht.
von Oliver J. (skriptkiddy)


Lesenswert?

Zahlendreher
von Philipp (Gast)


Lesenswert?

oh man ey... ich sollte wohl mal eine pause machen... selbst nach dem 
hinweiß hab ich noch ne ewig gebraucht um ihn zu finden ^_^'

Vielen Dank... Ich saß jetzt schon an die 3 Stunden vor diesem sau 
dämlichen Fehler.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.