hallo leute, hier mal ein quelltext bei dem sich der fehlerteufel eingeschlichen hat und ich nicht weiterkomme, theoretisch ist das ja hier kein hit, aber in der praxis kommt bei mir nur müll raus $regfile = "2313def.dat" 'der 2313 $crystal = 4000000 'mit 4mhz Dim Counter As Byte 'counter initialsieren Config Timer0 = Timer , Prescale = 1024 'interrupt nach ca 65ms On Timer0 Timer0_isr Config Portb = Output 'output, weil ja plus raus soll Config Portd = Input 'input, weil da plus rein soll Portb = &HFF 'port b auf plus setzen Portb.1 = 0 'portb.1 auf masse setzen Const Reload = 0 'später für ms-genauen timer interrupt Enable Timer0 Enable Interrupts Do Nop Loop End Timer0_isr: Counter = Tcnt0 Tcnt0 = Counter - Reload 'hier beginnt das problem: If Portd.5 = 1 Then 'wenn plus gesetzt Portb.1 = 1 'plus setzen, diode an Else Portb.1 = 0 'masse setzen, diode aus End If Return bei mir ist portb.0 immer 1, egal ob ich vom vcc pin plus auf portd.5 anlege oder nicht..wo ist da bei mir der fehler, oder hab ich schon vor lauter probieren den 2313 geschrottet? beim hantieren mit den leitungen bin ich mit dem vc kabelchen an den quarz rangekommen, schlimm?
Zum Abfragen von Pins nimmt man nicht 'Port' sondern 'Pin'. Also musst Du in Deinem Programm das hier ändern: If Portd.5 = 1 Then ändern in: If Pind.5 = 1 Then Frag mich nicht warum das so ist, aber ich habe dadurch auch erstmal ein paar Tage Bascom verflucht ;-) Irgendwo -ganz ganz versteckt- stehts auch in der Hilfe. MfG formtapez
Die Sache mit Pin statt Port ist AVR Standard, gibts schon seit dem 90S1200 und steht in jd. Datenblatt unter 'IO Ports'.
was haben die Atmel-Datenblätter mit Bascom zu tun ? Also als Programmierer von Bascom hätte ich 'Port' und 'Pin' zusammengefasst. MfG formtapez
Du könntest genauso fragen, was haben Atmel-Datenblätter mit C zu tun, denn auch unter C werden Portzustände mit Pin abgefragt. Naja, vielleicht werden die Bezeichnungen bald zusammengefasst. Irgendwann dann kann jede Sekretärin so ein Teil programmieren ohne auch nur im geringsten zu wissen, was dahinter steckt.
Die unterscheidung zwischen PIN und PORT hat ganz einfach damit zu tun, dass man beim AVR jedes Register wieder einlesen kann. Auserdem wird das PORT-Register auch verwendet zum die Pullups einschalten. Gruß, Florian
besten dank formtapez!!! das mit pin und port kam mir bekannt vor, hab aber nicht daran gedacht und ohne deine hilfe, hätte ich auch nie dran gedacht... @thorsten hast du was gegen sekretärinnen? mir scheint, daß du den sinn von foren nicht verstehst - oder verstehen willst? bist zu elitär, weil du mit µc zu tun hast? nichts für ungut, aber jeder fängt mal klein an. denk mal dran, wenn du nächstes mal im baumarkt einen verkäufer fragst, oder dich wegen sonstiger sachen erkundigst, bei denen andere leute die augen verdrehen.....
Hallo Mike, sorry, aber ich habe nicht das geringste gegen Sekretärinnen. Das sollte auch nur ein Beispiel sein, ist wohl unpassend gewählt. Was ich damit sagen wollte, ist, daß ich es nicht gut finde, wenn "Programmiersprachen" wie Basic (Bascom) alles mögliche zusammenpacken. Die Folge ist dann nämlich, daß sich der Anwender nur noch auf diese Programmiersprache verlässt und niemals auf die Idee kommt, mal einen Blick ins Datenblatt zu werfen oder einfach mal eine Sache zu hinterfragen. Im übrigen sollte mein erstes Posting nur die Antwort auf die Frage von formtapez sein, war also nicht gegen dich gerichtet ! Viel Erfolg noch.
Naja,wie auch immer. Das problem liegt daran das Bascom zwar leistungsstark ist und einem viel Puzzlearbeiten abnimmt aber zum einen die die Befehle mitten im Wandel stecken wo einige zusammengefasst wewrden und andere einfach ausgetauscht werden sollen und derzeit einfach parallel existieren. zum anderen ist die Dokumentatione stark überarbeitungswürdig. @Thorsten Ich arbeite auch primät mit Bascom weil ich für 99% der Projekte nicht die berümten 5% Speed oder 200Byte Speicher haben muß und mir so lästige kleinarbeit sparen kann(I2C,LCD,RC5/6,TWI,Ser,Shiftin/out,Timer usw. usw.)da es für die gängigsten Aktionen schon fertige Befehle gibt. So kann ich mich auf das Primäre ,nämlich das Funktions und Bedienungsdesign,konzentrieren. Bei kniffeligen kisten ist natürlich "Handarbeit" angesagt. Aber wie gesagt mache ich es mir einfach. Für ne simple Temperaturregelung mit Kennlinie (zb. Kty-10.6) werde ich bestimmt nicht in Assembler arbeiten wenn ich es mit weniger als 20 Zeilen in Basic mit gleichem Ergebnis aber einem Bruchteil der Zeit machen kann Wie es bei anderen ist weiß ich nicht aber ich schaue fast regelmäßig in Datenblätter. zum einen hab ich kein Photografisches Gedächtnis und zum anderen gibt es immer was was man noch nicht probiert hat. Und ich glaube das es bei anderen kaum anders sein wird. Also kein grund zum streiten. Jeder macht es wie er will und in der Sprache die er bevorzugt. Am Ende zählt nur noch das es funktioniert und nicht mit welcher Ästetik es gemacht wurde ;)
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.