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