Hallo Zusammen
Ich habe ein XK-1A Development Kit. Ich will mit xTIMEcomposer studio
ein einfaches Programm schreiben, in dem ich mehrere Kerne(Prozessor hat
8 Kerne) benutze. Hier ist mein Programm:
1 | #include <xs1.h>
|
2 | #include <stdio.h>
|
3 | #include <platform.h>
|
4 |
|
5 | out port led1 = XS1_PORT_4F;
|
6 |
|
7 | on stdcore[0] : in port button1 = XS1_PORT_1K;
|
8 | on stdcore[1] : in port button2 = XS1_PORT_1L;
|
9 |
|
10 |
|
11 | int main(void)
|
12 | {
|
13 | while(1)
|
14 | {
|
15 | button1 when pinseq(0) :> void;
|
16 | led1 <: 0b1100;
|
17 |
|
18 | button1 when pinseq(1) :> void;
|
19 | led1 <: 0;
|
20 |
|
21 | button2 when pinseq(0) :> void;
|
22 | led1 <: 0b0011;
|
23 |
|
24 | button2 when pinseq(1) :> void;
|
25 | led1 <: 0;
|
26 | }
|
27 | }
|
Mit dem Befehl pinseq(0) warte ich, bis der Taster "button1" gedrückt
wurde(Taster sind low-active). Danach leuchten "LED1" und "LED2". Bei
pinseq(1) warte ich, bis der Taster "button1" losgelassen wurde und
danach werden alle LEDs ausgeschalten. Dasselbe mache ich mit Taster
"button2", schalte jedoch "LED3" und "LED4" ein und aus. Mit den zwei
Kernen möchte ich bezwecken, dass ich die Taster unabhängig voneinander
drücken kann und nicht die Reihenfolge abarbeiten muss(pinseq()
blockiert Programm, bis Bedingung erfüllt ist).
Mein Problem ist: wenn ich alles mit Kern0 (stdcore[0]) mache,
funktioniert es, muss aber die Reihenfolge abarbeiten. Möchte ich aber
Kern1(stdcore[1]) für "button2" benützen, gibt er einen Fehler aus(siehe
Anhang).
Weiter Infos zum Kerne-Programmieren sind hier ab Seite 30:
1 | https://www.xmos.com/download/public/XC-Programming-Guide(X1009B).pdf
|
Danke Für eure Hilfe
Gruss prichner
PS. Ich hoffe ihr versteht mein Problem ;)