www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MB90F543 I/O Adressen


Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe ein  Fujitsu MB90F543 Board,
leider komme ich nicht gans mit der Adressierung klarr,

ich würde gerne die 12 Output pins  ansprechen und später die 48 inputs 
pints. Die I/O Ports werden über ein Adressbus angesprochen.
Wer schreiben , An welcher Adresse sich die Pins befinden?


Gruß Tobias

Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe nun versucht ein kleinens Programm zu schreiben, was nur die 
Ausgange auf eins setzten soll. Vieleicht kann mir jemand sagen wa ich 
falsch gemacht habe.


#include "mb90540.h"

int Main()
{
int a;

#define DB_READ                 DDR0 = 0x00     // Lesender Zugriff auf 
den Datenbus
#define DB_WRITE                DDR0 = 0xFF     // Schreibender Zugriff 
auf den Datenbus
#define DATABUS                 PDR0
#define ADDRESSBUS              PDR2

// Definitionen fuer den 4 zu 16 Adressdecoder
#define CS_IN1_1_8            0x00;
#define CS_IN1_9_16           0x01;
#define CS_IN1_17_24          0x02;
#define CS_IN2_1_8            0x03;
#define CS_IN2_9_16           0x04;
#define CS_IN2_17_24          0x05;
#define CS_IN3_0_7            0x06;
#define CS_DEFAULT_IN         0x07;
#define CS_OUT_1_8            0x08;
#define CS_OUT_9_12           0x09;

a=0; // a fester Wert=0
while(a<=5000)
{

     DB_WRITE;
     DATABUS = 0xFF;  // Bus Ausgabe aktiv 1..8
     ADDRESSBUS = CS_OUT_1_8; // durch Anlegen der Adresse Ausgabebyte 
Taktimpuls
      a++;    //schleife erhöt
}


return(0);
}


Bord beschreibung:
http://www.roboterwelt.de/auktion/fujit/index.htm

Gruß Tobias

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoi Tobias,

die CS für die IO-Treiber (74HC574 Output, 74HC245) werden vom CPLD 
erzeugt. Ohne die Funktion des CPLD zu kenne findest du die Adressen 
nicht raus.

Was sagt die Dokumentation dazu?

Gruss,
Felix

Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Leider habe ich da keine Adressen Doku gefunden,
Ich habe mit hilfe eines bst. Program, die Adressen zu ermitteln.
Schau dir das bitte mal an, vieleicht kannst du mir einen TIP geben.

Gruss Tobias

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Adress Decoder ist wirklich simpel aufgeabut....

Routinen für das schreiben und lesen der I/O Ports findest du im 
Main_neu.c

schreiben:
void setoutput (unsigned char uc_port,unsigned char uc_wert)

lesen:
unsigned char readinput (unsigned char uc_port)

Ansonsten gilt immer noch: RTFM!

Gruss,
Felix

Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich wert es mal versuchen, ich werde auch, nochmal "RTFM" , 
vieleicht habe ich was in der DOKU übersehen .


Gruß Tobias

Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss jetzt noch mal Fragen , Sory ich bin ein blutigert Anfänger.
Kannst du mir mal ein einfaches beispiel mit deiner while schleife 
machen.

zb;


#include "mb90540.h"

int Main()
void setoutput (unsigned char uc_port,unsigned char uc_wert)

{
int a;

#define DB_READ                 DDR0 = 0x00     // Lesender Zugriff auf 
den Datenbus
#define DB_WRITE                DDR0 = 0xFF     // Schreibender Zugriff 
auf den Datenbus
#define DATABUS                 PDR0
#define ADDRESSBUS              PDR2

// Definitionen fuer den 4 zu 16 Adressdecoder
#define CS_IN1_1_8            0x00;
#define CS_IN1_9_16           0x01;
#define CS_IN1_17_24          0x02;
#define CS_IN2_1_8            0x03;
#define CS_IN2_9_16           0x04;
#define CS_IN2_17_24          0x05;
#define CS_IN3_0_7            0x06;
#define CS_DEFAULT_IN         0x07;
#define CS_OUT_1_8            0x08;
#define CS_OUT_9_12           0x09;



//Teste Unterprogramm 28.2.2008 TH#


while(a<=1000)
{

     DB_WRITE;
     DATABUS = 0xFF;  // Bus Ausgabe aktiv 1..8
     ADDRESSBUS = CS_OUT_1_8; // durch Anlegen der Adresse Ausgabebyte 
Taktimpuls
a++;    //schleife erhöt
}



return(0);
}
Fehler:
Now Making...
--------------------Configuration: IO_TSE.prj - 
Debug--------------------
MAIN.C
*** d:\daten\iso\fujisu_board\software\test1\src\main.c(32) E4105C: 
parameter `setoutput' is missing in parameter list
*** d:\daten\iso\fujisu_board\software\test1\src\main.c(32) E4062C: 
syntax error near `{'
------------------------------
Error detected.
------------------------------




Gruß Tobias

Autor: Tobias Himpenmacher (Firma: keine) (tobiasth)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Gibt es einen möglichkeit, die Ausgänge (1 bis 12) auch ohne Funktion zu 
aktivieren.

Ich habe versucht einige Funktionen vom Ursprungsprogramm zu übernehmen, 
aber ich komme einfach nicht weider. wenn mir jemmand einen TIP geben 
könnte, wäre ich sehr dankbahr.


Gruß Tobias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.