Hi! Ich teste gerade den AT90S4433 mit Bascom Basic. Auf der PC Seite verwende ich Borland c++ 5.x und habe beide mit der seriellen Schnittstelle verbunden. $regfile = "4433def.dat" $crystal = 4000000 $baud = 9600 Dim Lesen As Byte Do Input Lesen Print Lesen Loop End Mit dem PC schicke ich ein byte, und möchte es von dem Atmel wieder habe. (Als Übung) Das funktioniert als Byte genau 3 mal, danach kann ich nur -1 auslesen. Nach einem Reset wieder 3 mal etc. Woran liegt das? wenn ich die variable als String deklariere, dann sind mehrere Antworten vom Controller möglich, aber das auch nur mit begrenzter anzahl! 2. Problem in der Schule verwenden wir KEIL uvision 2 und Programmieren einen 8051 in C. Ich möchte gerne meinen Atmel ebenfalls mit c programmieren, aber woher bekomme ich die .reg datei? Die definitions datei die ich in Bascom verwende geht nicht. Auf der Keil seite und im Netz habe ich keine Datei für den 4433 gefunden. wie mach ich das dann? Besten Dank schon mal! Gruß Matthias
ich habe es überarbeitet, aber es geht immer noch nicht. Ich möchte bei dem Interrupt URXC (alle daten empfangen) einen wert setzrn, aber der Interrupt kommt nicht. Ich muß den comport pc seitig mehrere dutzend male öffnen und schliessen , damit überhaupt "lesbare" zeichen übertragen werden. Kann mir da bitte einer helfen? $regfile = "4433def.dat" $crystal = 4000000 $baud = 9600 Dim Lesen As Byte 'Lesen = "T" Enable Interrupts Enable Urxc On Urxc Les Do Test: If Lesen = "s" Then Gosub Stat Print "noch nicht" Return Loop Les: 'input Lesen Lesen = "s" Return Stat: Do Print "Interrpt hat ausgeloest" Loop
µVision unterstützt deinen Controller nicht. ich kenne mich mit deinem Controller nicht aus, aber könnte es sein das du vl ein UART-Flag setzen bzw löschen musst? und harmoniert die Baudrate mit deiner verwendeten Taktfrequenz? vl ist dir jetzt irgend ein geistesblitz gekommen. mfg schoasch PS.: Basic gehört verboten (meiner meinung nach ;-))
Danke euch! Ich probier das mal aus. Also der Controller (4433) ist der Vorzeigecontroller in eurem Tutorial:) Mit dem Flag usw. kenn ich mich nicht mit aus, aber die Seite von Michael sieht schon mal vielversprechend aus ;) Was muß ich den tun um den Controller unterstützt zu bekommen? ich brauch doch nur diese reg datei, und uvision unterstützt bereits dutzende Atmels der 89, und 91 Serie. PS. Basic Egal wie alle Leute immer über Basic motzen, es ist eine einfach zu handhabende Programmiersprache, OK hält sich nicht an alle konventionen, aber man hat in der Regel in kürzester Zeit ein brauchbares Ergebnis. Zum Vergleich Visual Basic, habe ich mir in gut einer Woche selber mit einem Tutorial beigebracht, und konnte schon "relativ" schöne Prgramme schreiben. Mit Visual C++ war ich nach gut 2 Monaten so weit, um das selbe hinzukriegen (und das hatten wir noch in der Schule nebenher). Und ich denke das mir einige konvertierungen immer noch nicht in c++ gelingen, weil einfach die Lektüre wesendlich komplizierter gestrickt ist ;) Mein Fazit: Für Hobbyprogrammierer ist Basic Perfek! Aber da das Beruflich auf mich zukommen kann, würde ich den gerne in c Programmieren. Durch privaten Spaghetti Code muß doch eh kein Zweiter durchblicken;)
Hi,
>Durch privaten Spaghetti Code muß doch eh kein Zweiter durchblicken;)
Okay. Wenn du beruflich damit zu tun haben wirst, vergiss das lieber
gleich wieder. Selbst im privaten Bereich ist ne halbwegs vernuenftige
Dokumentation eines Codes angebracht, sonst erfindest du das Rad immer
wieder neu.
Und wer weiss, ob du das was du zu Hause schonmal programmiert hast
nicht spaeter mal beruflich wiederverwenden kannst.
Und Basic ist zwar einfach zu lernen, aber eben lange nicht so maechtig
wie C++ oder C. Das ist also kein boeser Wille, wenn die Tutorials
komplizierter sind.
der Guenther
War nicht speziell auf mich bezogen, wie gesagt ich würde am liebsten mit c Arbeiten (Keil), da ich da schon einige Erfahrungen mit einem 8051 sammeln konnte. Ich wollte nur sagen das BASIC auf jeden Fall seine Daseinsberechtigung hat. Nun zurück zum Thema, Auf der Seite wird leider nicht auf die Interrupts eingegangen, die aber für mich zwingend erforderlich sind. Das einfache senden eines Strings klappt, bis auf die Connect Probleme, problemlos. Ich muß die Schnittstelle im Borland Programm mehrmals öffnen und schließen damit es geht. Bei dem 8051 und Keil frage ich einfach das RI Signal des SCON Registers ab, das mir mitteilt das was empfangen wurde, aber wie geht das mit dem 4433 und Bascom? Das ganze soll ein Lüftersteuerung werden(meine alte), und ich möchte die Grenzwerte, über das c++ Programm eingeben, und die aktuellen istwerte sowie die Temperaturen auslesen können, natürlich nur bei bedarf! Aus dem Grund muß das über Interrupts laufen
Habs doch noch gefunden auf der Seite! Interrupts gehen jetzt! Aber ich kann immer nur ein Zeichen auf einmal sende. Onrxd: I = Udr 'Byte aus der UART auslesen Printbin I 'Byte als Echo zurückgeben Print 5 Return In dem Fall gibt er mir das Zeichen als Byte, und direkt die 5 als Byte! Wenn ich den Interrpt erneut auslöse, kommen 2 Bytes mit Schrott! Erst ein neuer Interrupt führt wieder zum gewünschten Ziel! Also jeder 2. Interrupt ist nur zu gebrauche, jedenfalls dann wenn ich mehr als einen Print befehl verwende! Woran liegt das?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.