Morgen, ich bräuchte mal kurz eine kurze Hilfe:
Ich möchte einen char-Puffer interruptgesteuert versenden...
Code-Ausschnitt:
1 | char uart_snd_buffer[100];
|
2 | uint8_t snd_counter = 0;
|
3 |
|
4 | void send_uart_character (char *send_buffer)
|
5 | {
|
6 | UCA0TXBUF = *send_buffer;
|
7 | }
|
8 |
|
9 | #pragma vector = USCIAB0TX_VECTOR
|
10 | __interrupt void usciab0_tx_vector (void)
|
11 | {
|
12 | if (IFG2 & UCA0TXIFG) // USCIA0 transmit buffer interrupt
|
13 | {
|
14 | if (snd_counter)
|
15 | {
|
16 | UCA0TXBUF = uart_snd_buffer++;
|
17 | snd_counter--;
|
18 | }
|
19 | else
|
20 | {
|
21 | IFG2 &= ~UCA0TXIFG; // Clear UCA0 transmit flag
|
22 | }
|
23 | }
|
24 | }
|
Meckern tut der Compiler beim...
1 | UCA0TXBUF = uart_snd_buffer++;
|
...und sagt mir: "expression must be a modifiable value"
Das Array ist doch eigentlich nichts anderes als ein String, oder?
Und bei nem String kann ich ja auch schreiben: *string++
Kann mir einer sagen, worans liegt?