Probleme mit Microblaze und variablen Ausgabe

Gast #924396
Lesenswert?
• ▲
▼
Hi

ich hab nen Microblaze in einem Spartan 3 XC3S200 laufen.
Jetzt will ich scannen ob an einem der inputs eine 1 anliegt bzw an 
mehreren.
Dazu scanne ich den input 10000 mal und verknuepfe das mit einem oder in 
eine andere variable so das sich das ding quasi "merkt" welcher pin high 
war (auch wenns schon wieder weg ist) danach will ich die 8 bit von 
occurred (unsigned char) ueber den UART ausspucken aber irgendwo kracht 
es

Der Code
1
for (i=0; i<=10000; i++)
2
  {
3
  data=XGpio_DiscreteRead(&gpPB, 1);  // daten lesen
4
  if (data != 0)  // wenn ein pin gerade high ist dann
5
    {
6
    occurred = (occurred | data);  // in occurred "einodern" 
7
    }
8
  }
9
if (occurred != 0)
10
  {
11
  xil_printf(occurred);  // den hexwert an den uart ausgeben
12
  }
13
else
14
  {
15
  xil_printf("0");  // an sonsten null ausgeben (ich weiss das kann
16
  }                 // ich mir eigentlich sparen
17
}
wenn ich das so mache bekomme ich nur sondermuell wenn die daten mal 1 
waren.

Wenn ich ein das xil_printf ein &occurred schreibe bekomme ich 16 bit 
von denen das este byte korrekt aussieht das 2 aber voelliger muell ist.

occurred und daten sind beide unsigend char.

 Danke fuer die Hilfe

  Tobi
Gast #924410
Lesenswert?
• ▲
▼
Nachtrag

ich VERMUTE das er mir wenn ich xil_printf(&occurred) mache der 
komplette inhlt der speicherzelle von mit der addresse occurred 
ausgegeben wird und das die anderen 8 bit quasi "random" sind.

Weiss irgendwie wie das ist und ob es fuer das xil_printf ne doku gibt 
in der so was steht? Habs in der API nicht gefunden.

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