Hallo zusammen,
ich habe ein kleines Problem mit meinem Programm. Irgendwie bekomme ich
nichts vernüftiges gesendet... Vielleicht könnte mir hier ja jemand
helfen?
1
#include<msp430.h>
2
#include"bocas.h"
3
#include"main.h"
4
5
intdmaRS232(constchar*text,unsignedintlength);
6
intdmaInit();
7
8
staticcharstring1[]={"a"};
9
10
voidrs232Init(void)
11
{
12
BITSET(P3SEL,0xC0);
13
BITSET(P3DIR,0x40);
14
15
BITSET(U1CTL,SWRST);
16
BITSET(ME2,UTXE1+URXE1);
17
BITSET(U1TCTL,SSEL0);
18
BITCLR(U1CTL,SYNC);
19
BITCLR(U1CTL,PENA|SPB);
20
BITCLR(U1CTL,CHAR);
21
U1BR0=LOW_16(69);
22
U1BR1=HIGH_16(69);
23
U1MCTL=0xAA;
24
BITCLR(U1CTL,SWRST);
25
}
26
27
voidinitInterruptControlledIO(void)
28
{
29
rs232Init();
30
31
// Watchdog deaktivieren
32
WDTCTL=WDT_MDLY_32;
33
34
BITCLR(IFG2,URXIFG1);
35
BITSET(IE2,URXIE1);
36
37
INT_ENABLE;
38
}
39
40
#pragma vector=DMA_VECTOR
41
__interruptvoidDMA_ISR(void)
42
{
43
BITSET(DMA1CTL,DMAEN);
44
}
45
46
intdmaInit()
47
{
48
BITSET(DMACTL0,DMA1TSEL_10);// Enable UART1
49
50
BITSET(DMA1CTL,(DMADSTBYTE|DMASRCBYTE));// Set Byte-Mode
Kilian K. schrieb:> Irgendwie bekomme ich nichts vernüftiges gesendet...
Irgendwie ist da nichts vernünftiges in der Fehlerbeschreibung ...
Aber erklär mir doch mal bitte, wann und wie DMAIFG gelöscht wird.
Beim F1611 ist da nichts buggy: http://www.ti.com/lit/pdf/slaz146
Wenn ich mir den Beispielcode von TI (dma_04.c) anschaue, dann wurde der
in diesem Programm unnötige Teil (DMAEN im Interrupt-Handler) blind
übernommen, und der wichtigste Teil (DMALEVEL) fehlt.
Eine eigene Frage?
Dieser Thread ist über 10 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.