ADuC-P7026 Port ansteuern

OP #3349141
Lesenswert?

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
Gast #3349286
Lesenswert?

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
Gast #3349291
Lesenswert?

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
OP #3349362
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren