Erster Blick:
Der M32 ignoriert die Anzahl Stop-Bits, wie ist das auf dem M128 ?
ich glaub meine controller verarschen mich oder ich seh den wald vor lauter bäumen nicht
der code wird identisch auf einem M32 und einem M128 aufgespielt (M128 == Embedit128Modul) der M32 braucht 30 mal länger als der M128 um das byte über die UART zu schieben (mit oszi gemessen) was mach ich falsch, hab ich was vergessen oder pübersehen ? bitte helft mirCode:DDRD |= (1<<TRANSMITTER) | (1<<TRIGGER_PIN); UBRRH = 0; //> ... UBRRL = 10; //> 1/10 MBaud @ 16Mhz UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); UCSRC = (1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1); //> 8N2 while(1){ PORTD |= (1<<PD4); while(!(UCSRA & (1<<UDRE))); UDR = R_OPERATING; while(!(UCSRA & (1<<TXC))); PORTD &= ~(1<<PD4); }
PS: die Frequenz selber konnt ich nicht am Quarz überprüfen, aber die pausezeiten zwischen 2 bytes sind identisch mit rund 250nS (entspricht einer vergleichsoperation, wie im while)
Erster Blick:
Der M32 ignoriert die Anzahl Stop-Bits, wie ist das auf dem M128 ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
versteh ich nicht die aussage ...Der M32 ignoriert die Anzahl Stop-Bits, wie ist das auf dem M128 ?
problem gefunden ... beim M32 fehlt das URSEL Bit (Bit7) statt in UCSRC zu schreiben hab ich in UBBRH geschrieben ... hat SEHR lange gebraucht bis es mir aufgefallen war, irgendwie hatte beim M32 in der initialisierung gehfehlt und dnan hab ich fälschlicherweise aus dem M128 datenblatt abgelesen dass ich es 0 setzen soll ... schon iwie bekloppt solche kleinigkeiten .. der tag ist gerettet aber es funktioniert dennoch nicht so ganz wie ich will aber das liegt am rest des aufbau vermutlich ^^
Lesezeichen