Hallo zusammen, brauche für meine Bachelorarbeit einen Mikrocontroller und habe einen ADUC7026 auf einem Evaluationsboard von Olimex vorliegen. Kommunikation mit PC funktioniert. Konnte auch schon das Test-Hex-File, welches beim ARMWSD dabei war laden und es wird auch ausgeführt. Nun möchte ich aber mit uV4 ein Programm schreiben und für den Anfang einfach mal P4.0 und P4.1 (jeweils mit LED) an machen. Aber es funktioniert einfach nicht und ich verzweifle solangsam. Ich hab bald schon alle Konfigurationen von GP4DAT probiert. Es leuchtet einfach nicht. vom GP4DAT sind doch Bit 31-24 dafür zuständig, ob Eingang oder Ausgang. Somit kann ich doch alle auf Ausgang setzen (also 11111111). Bit 23-16 ist Data Output, (also 11111100), da ich ja P4.0 und P4.1 low haben möchte, da die LED´s low geschalten werden. Bit 15-8 kann ich doch komplett auf 0 lassen (also 00000000) und Bit 7-0 wären die Eingangswerte, also lass ich die auch 0. Somit wäre meine Bitfolge 1111 1111 1111 1100 0000 0000 0000 0000 was in Hex 0xFFFC0000 wäre. Damit tut sich aber garnix auf dem Controller. Ich hab als Include die ADuC7026.h drin und die gpio.h, wobei ich mir nicht sicher bin, ob ich die brauch. und dann einfach eine int main(void) { GP4DAT = 0xFFFC0000 return 0 } Damit müsste doch die LED zumindest angehen. Habe im Studium mal ein wenig mit einem Atmel C51 in Assembler programmiert. Daher steh ich jetzt beim umstieg auf C und auf einen ADuC7026 total auf dem Schlauch. Wäre super, wenn mir jemand ein paar Tipps geben könnte. Danke schonmal. Gruß Julian
so z.B.: [c] GP4DAT = 0x04000000; // Configure P4.2 as output ... GP4DAT ^= 0x04040000; // Complement P4.2 [/] Ein Blick in die Beispiele von Analog Devices und Olimex hätten es auch getan. Blackbird
Hier noch ein Beispiel:
1 | /*********************************************************************
|
2 | |
3 | Author : ADI - Apps www.analog.com/MicroConverter
|
4 | |
5 | Date : Sept. 2005
|
6 | |
7 | File : blink.c
|
8 | |
9 | Hardware : ADuC702x Rev I silicon
|
10 | |
11 | Description : Blinks LED continuously
|
12 | |
13 |
|
14 | *********************************************************************/
|
15 | |
16 | #include "ioADuC7026.h" |
17 | |
18 | |
19 | void delay(int); |
20 | |
21 | |
22 | int main(void) |
23 | {
|
24 | |
25 | // configures GPIO to flash LED P4.2
|
26 | GP4DAT = 0x04000000; // P4.2 configured as an output. LED is turned on |
27 | |
28 | |
29 | while (1) |
30 | {
|
31 | |
32 | |
33 | |
34 | GP4DAT ^= 0x00040000; // Complement P4.2 |
35 | delay(300000); |
36 | }
|
37 | }
|
38 | |
39 | void delay (int length) |
40 | {
|
41 | while (length >=0) |
42 | length--; |
43 | }
|
Blackbird
Danke schonmal für die schnelle Antwort. Die Beispiele habe ich auch schon angeschaut. Hab auch das von dir jetzt mal kopiert und GP4DAT = 0x04000000 in 0x01000000 und GP4DAT ^= 0x00040000 in 0x00010000 geändert, da ich ja P4.0 und nicht P4.2 blinken lassen möchte. Funktioniert leider nicht. Da tut sich garnichts. Ich hab allerdings nicht die ioADuc7026.h sonder die ADuC7026.h Aber das müsste doch mit der auch funktionieren. oder?
Jumper auf dem Board gesteckt? Frequenz (Oszillator) richtig eingestellt (per Software)?
1 | POWKEY1 = 0x01; |
2 | POWCON = 0x02; //11.272MHz |
3 | POWKEY2 = 0xF4; |
Blackbird
1 | #define LED1_ON GP4DAT &= ~0x00010000
|
2 | #define LED1_OFF GP4DAT |= 0x00010000
|
Die LEDs hängen an +3,3V - der Pin muß also auf 0 gesetzt werden, damit sie leuchten. Blackbird
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.