Gast
#141721
Hallo, ich versuche gerade ganz simpel vom M32C/83 über den UART0 irgendwas an meinen PC (HyperTerminal) zu senden. Doch irgendwie klappt das nicht. Ich denke mal, dass meine Konfiguration irgendwo hakt. Bisher habe ich folgendes konfiguriert: // Protection Register PRCR = 0x02; // ?? xxxx 0010; // PRC1 --> Enables writing to PM0, PM1, INVC0, INVC1 registers // Processor mode register 0 PM0 = 0x00; // PM00+PM01 = 00 --> Single-Chip Mode PRCR = 0x00; // xxxx 0000 // UARTi baud rate register ( clk_tmp = (CLOCK 1 16 / BAUD) - 1; /* Set the baud rate */ // (f1/(TC*16))-1 = m; f1=30MHz, TC=9600Baud --> m=203 U0BRG = clk_tmp; // UARTi transmit/receive mode register U0MR = 0x05; // 00000101; // SMD0-2 = 101 --> UART mode, transfer data 8 bits long // CKDIR = 0 --> Internal Clock // STPS = 0 --> 1 Stop bit // PRY = x(0) --> Enabled when PRYE = 1 // PRYE = 0 --> Parity disabled // IOPOL = 0 --> TxD, RxD i/o not switched // Control Register 0 (CTS=Clear To Send; RTS=Request To Send) U0C0 = 0x10; // 0001 x000: f1 */ // CLK0=0+CLK1=0 --> Selects f1 // CRS=0 // CRD=1 // Control Register 1 U0C1 = 0x01; // 0000 x0x1 // Port Direction PD6 = PD6 & 0xF8; // 11111000; // RxD0 = 0 --> Input PD6 = PD6 | 0x08; // 00001000; // TxD0 = 1 --> Output //---config - Ende---- Des Weiteren würde ich denken, dass ich das Function Select Register A0 (PS0) noch einstellen müsste. Doch da stürzt mir das Programm immer ab. //PS0 = PS0 || 0x08; // 00001000; // setzen der '1' //PS0 = PS0 && 0x08; // 11111000; Zum Schluß wollte ich einfach einen Buchstaben verschicken: U0TBL = 'H'; Ich bin mir auch gar nicht ganz sicher, was ich überhaupt alles konfigurieren muss. Über eure Hilfe wäre ich sehr dankbar. Gruß Bastian