Forum: Mikrocontroller und Digitale Elektronik Basom:wo fehler bei portabfrage


von Mike (Gast)


Lesenswert?

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?

von formtapez (Gast)


Lesenswert?

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

von Thorsten (Gast)


Lesenswert?

Die Sache mit Pin statt Port ist AVR Standard, gibts schon seit dem
90S1200 und steht in jd. Datenblatt unter 'IO Ports'.

von formtapez (Gast)


Lesenswert?

was haben die Atmel-Datenblätter mit Bascom zu tun ?
Also als Programmierer von Bascom hätte ich 'Port' und 'Pin'
zusammengefasst.

MfG
formtapez

von Thorsten (Gast)


Lesenswert?

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.

von Florian Pfanner (Gast)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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.....

von Thorsten (Gast)


Lesenswert?

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.

von Ratber (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.