Hallo, bin ziemlicher Neueinsteiger im Bereich uController, und momentan
am experimentieren, wie ich im Hyperterminal eingegebene Zeichen in ein
Array abspeicheren kann.
Der Controller ist ein AT89C51CC03.
Also was momentan schon klappt, ist die Initialisierung mit der
passenden Baudrate (9600) und die Ausgabe eines Arrays im Hyperterminal.
Was jedoch nicht klappt, jedoch komm ich momentan noch nicht dahinter
wie ich es anstellen soll das ich die eingegebenen Zeichen nacheinander
aus dem Buffer hole und dann ins Array speichern kann.
Es sollte so sein, das ich etwas eingebe, dann RETURN drücke und das
dann das fertige Array in die nächste Funktion übergeben wird.
Wenn alles mal fertig ist, solls zur Datenwort-Übergabe für einen AD9833
Frequenzgenerator dienen.
Hier mein Code:
1 | //Teilweise was weggelassen
|
2 |
|
3 | void Warte10Us(int);
|
4 | void SerialInit();
|
5 | void GebeDatenAus(unsigned char*);
|
6 |
|
7 | int main(void)
|
8 | {
|
9 | int i=0, anzahl=0;
|
10 | unsigned char array[30];
|
11 |
|
12 | SerialInit();
|
13 | while(strcmp(array,'\0')!= 0)
|
14 | {
|
15 | if (RI==1)
|
16 | {
|
17 | array[i]=SBUF;
|
18 | i++;
|
19 | RI=0;
|
20 | }
|
21 | }
|
22 | GebeDatenAus(array);
|
23 | return 0;
|
24 | }
|
25 | void SerialInit() //8-Bit Auto-Reload 9600 Baud
|
26 | {
|
27 | EA=0; //Alle Interrupts deaktivieren
|
28 | TH1=0xFD; //FD=253, Wert gültig für 9600 Baud bei 11,059 Mhz
|
29 | SCON=0x50; //01010000 ins SCON-Register laden -> 8Bit Auto-Reload
|
30 | TR1=1; //Counter starten
|
31 | RI=0; //Receive Interrupt = 0
|
32 | TI=0; //Transmit Interrupt = 0
|
33 | ES=1; //Serielle Interrupts einschalten
|
34 | TMOD=0x26; //00100110 ins TMOD-Register laden
|
35 | EA=1; //Alle Interrupts aktivieren
|
36 | }
|
37 |
|
38 | void GebeDatenAus(unsigned char *array)
|
39 | {
|
40 | int lauf, x=0;
|
41 | x=strlen(array);
|
42 |
|
43 | for(lauf=0;lauf<=x;lauf++)
|
44 | {
|
45 | SBUF=array[lauf];
|
46 | Warte10Us(200);
|
47 | }
|
48 | }
|
Wäre nett wenn sich das mal jemand anschauen könnte, und evtl nen
Hinweis für mich hat wieso das ganze nicht läuft ;)
Schonma danke und noch ein schönes Wochenende!
MfG Derdiek