Les mal die Datenblätter an betreffender Stelle.
Der AT90S2313 hat einen "UART" und der Tiny2313 nur einen "USART"
Hallo,
beim AT90S2313 habe ich das so gemacht und das hat auch funkt.
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''
$baud = 4800
On Urxc Rs232_int
Enable Interrupts
Enable Urxc
Rs232_int:
Disable Urxc
.
.
.
Enable Urxc
Return
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''
der attiny2313 hat doch auch einen usart oder ?
jedoch funkt. das ganze nicht beim ATtiny2313 ?!
wer weiß rat
vielen Dank
Gruß Tobias
Les mal die Datenblätter an betreffender Stelle.
Der AT90S2313 hat einen "UART" und der Tiny2313 nur einen "USART"
Gruß
Ratber
tja leider kann ich nicht so gut Englisch ...
habe aber im Datenblatt des Attiny2313 folgendes auf Seite 43 gefunden:
Reset und Interrupt Vektor 0007 -> USART0 Rx Complete ... also muß das doch irgendwie funktionieren ...
klar wenn ich daran gedacht hätte hätte ich den etwas älteren AT90S2313 genommen - aber nun steht die Schaltung
Gruß Tobias
Hallo
Was ist denn der Unterschied zwischen USART und UART?
gruss Bluesmash
Nein ,eigentlich wollte ich mal zum selberdenken anregen da bei beiden Controllern unterschiedliche Komponennten zum einsatz gekommen sind was auch andere unterschiede vermuten lassen könnten.
Naja,ist wohl in die Hose gegangen.
Also:
Erstmal einen Blick in beide Datenblätter wo bei beiden Controllern die betreffenden Interruptvektoren liegen.
Nein da sind beide gleich.
Der nächste Schritt wäre eine bekannte Fehlerquelle zu untersuchen.
Die Definitonsdateien von Bascom.
Zuerst in die des 90S2313
Unter Vektor 07 steht "URXC" als Label was sich auch mit dem Code deckt.
Dann einen Blick in die Def .vom Tiny2313
Ja da steht unter 07 ebenfalls "URXC" als Label.
Auch die anderen beiden beteiligten Int. sind ohne auffälligkeiten.
Also auch nix.
Ja,was könnte es denn noch sein ?
Nochmal zurück zu den Datenblättern.
Vieleicht hat Atmels Dokumentationsoberschreibmeister mal wieder zuviel Absint geschluckt und aus faulheit ebenfalls mal wieder große Teile des neuen Dokumentes einfach aus alten zusammenkopiert.
Copy&Paste ist schließlich in
Ja bei den Blcokdiagrammen des UART bzw. USART bemerke ich allerdings das beim UART des 90S2313 die Int. angegeben sind wogegen ich beim USART des Tiny2313 zunächst garnix dazu finden kann.
Das schließt zumindest nicht gänzlich aus das da irgendwo mal wieder das übliche Atmel-Kuddelmuddel bei den Datenblättern zugeschlagen hat.(Stichwort "Absint". Gelle ?)
so,hier wäre jetzt ein Hardwarecheck angesagt aber da muß ich ebenfalls mangels greifbarem Tiny2313 passen.
Bleibt nur noch als Anregung die Funktion der Schnittstelle zu überprüfen ob auch alle Signale wirklich da ankommen wo se hin sollen.
Edit:
Gerade erst gemerkt.
Die Bascom Definitionen auf die ich mich beziehe sind die der Version 1.11.7.9
Gruß
Ratber
mh... also kuttel muttel ...
tja da muß ich den SMD ATtiny2313 auslöten und einen AT90S2313 verbauen - so eine Schei....
oder es hat noch jemand einen Tip ?
irgend wie scheint der aber zu reagieren ... eine
Do
toggle led
Loop
schleife läuft und bei dem Eintreffen eines Signales an RxD springt der warscheinlich nicht wieder zurück - da die LED eben nicht mehr blinkt ...
also weiter untersuchen !
vielen Dank nochmal
also ist der Grund das der Attiny2313 keinen Interrupt von RxD unterstützt oder ein ander Chip z.B. Atmega32 könnte das ... (habe noch nicht in's Datenblatt geschaut !!!)
Gruß Tobias
irgend wie scheint der aber zu reagieren ... eine
Do
toggle led
Loop
schleife läuft und bei dem Eintreffen eines Signales an RxD springt der warscheinlich nicht wieder zurück - da die LED eben nicht mehr blinkt ...
also weiter untersuchen !
Das ist doch schon was.
Sind die Daten denn überhaupt komplett ?
Übertragungsparameter (Daten-,Stopp-,Paritätsbits hast du mittlerweile vermutlich schon 100x überprüft und den rest der Routine auch.
Da die "Rs232_int:" vermutlich nicht komplett abgearbeitet wird kannst du ja mal die Sünde riskieren und dort ebenfalls Flags setzen.
zb. in Form von LED's
Ein paar Ports lasen sich doch sicher vorübergehend abzweigen.
Nr.1 haste ja schon selber als Indikator für die Hauptschleife eingesetzt.
Nr.2 würde ich an den Anfang der "Rs232_int:" setzen um anzuzeigen das er dort angekommen ist.
Nr.3 dann noch ans Ende der Routine um anzuzeigen das er die Routine auch durchlaufen hat.
Gruß
Ratber
Hallo,
ja mache ich mal ... ich habe zwar nur eine LED zur Verfügung aber da muß ich das halt mehrmals machen ....
Gruß Tobias
Das ist ja nicht tragisch.
Wenn er hängt ist der Zustand der Ports ja quasi statisch.
Da kannste die LED eben zur Kontrolle kurz umstecken.
Gruß
Ratber
Lesezeichen