Hallo,
vielleicht kann mir jemand helfen.
Ich nutze ein ZDM-A1281 Zigbee Modul von Meshnetics zusammen mit dem
eZeeNet-Stack [1]. Der darauf verbaute Controller (ATMega1281) besitzt
zwei UART, welche vom Stack auch unterstützt werden.
Wenn ich nur UART_0 mittels uart_open öffne funktioniert alles, ebenso
wenn ich nur UART_1 öffne.
Ist jedoch bereits ein UART offen, bekomme ich beim Öffnen des anderen
UART von uart_open den Rückgabewert -1. Dieser Rückgabewert bedeutet
laut Datenblatt
1. incorrect UART channel oder
2. unsupported flags oder
3. insufficient resources.
Die ersten beiden Fehler können es nicht sein, da die UARTS einzeln mit
den selben Parametern funktionieren. Bleibt also nur noch "insufficient
resources" als Grund.
Hier mal der Code zum öffnen der UARTs.
1 | int uart0;
|
2 | int uart1;
|
3 |
|
4 | UARTMode_t param;
|
5 | param.baudrate = UART_BAUDRATE_9600;
|
6 | param.data = UART_DATA8;
|
7 | param.parity = UART_PARITY_NONE;
|
8 | param.stopbits = UART_STOPBIT_1;
|
9 |
|
10 | uart0=uart_open(UART_CHANNEL_0, ¶m, UART_FLOW_CONTROL_NONE,UART0RXByte,tx0Done);
|
11 | uart1=uart_open(UART_CHANNEL_1, ¶m, UART_FLOW_CONTROL_NONE,UART1RXByte,tx1Done);
|
Meine Frage ist jetzt, was muss ich tun damit ich genügend Resourcen
habe um zwei UARTs gleichzeitig zu öffnen. Mein Programm enthält bisher
eigentlich sonst keinen weiteren Code. Es kann also nicht daran liegen,
dass ich selbst zuviel Resourcen brauche. Gibt es eine Möglichkeit in
Stack mehr Resourcen für den UART zu reservieren, oder geht das öffnen
von zwei UARTS gleichzeitig generell nicht (und warum steht es dann
nicht gleich im Datenblatt)?
Gruß Holger
[1] Datenblatt zum Stack: http://www.meshnetics.com/dl.php?id=17