Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom spinnt oder ich ??
molleonair
15.02.2006, 18:12
Was zur hölle ist mit diesem compiler los
einen code den ich gestern noch fehlerlos compilen könnte geht heut nicht mehr
könnts ihr mal testen
die fehlermeldungen hab ich als kommentar in den code eingefügt
Dim Zeichen As Byte
Declare Sub Lcdwrite(byval Zeichen As Byte) 'funktion zum senden an das display
'Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.1 , Rs = Porta.0
Initlcd
Call Lcdwrite(&B00101100) 'aufruf zum initialisieren
Waitms 5 'des display controllers
Call Lcdwrite(&B00001001)
Waitms 5
Call Lcdwrite(&B00101000)
Waitms 5
Call Lcdwrite(&B00000110)
Waitms 5
Call Lcdwrite(&B00001100)
Waitms 5
Config Lcd = 20 * 4a 'display als 20 zeichen mal 4 zeilen
Do
Wait 1
Cls
Upperline
Lcd "11111111111111111111"
Lowerline
Lcd "22222222222222222222"
Thirdline
Lcd "33333333333333333333"
Fourthline
Lcd "44444444444444444444"
Loop
Sub Lcdwrite(byval Zeichen As Byte)
' Höherwertiges Nibble setzen
If Zeichen.4 = 1 Then Porta.4 = 1 Else Porta.4 = 0 'error 31 invalid datatype (0)
If Zeichen.5 = 1 Then Porta.5 = 1 Else Porta.5 = 0 'error 31 invalid datatype (0)
If Zeichen.6 = 1 Then Porta.6 = 1 Else Porta.6 = 0 'error 31 invalid datatype (0)
If Zeichen.7 = 1 Then Porta.7 = 1 Else Porta.7 = 0 'error 31 invalid datatype (0)
Porta.1 = 1 'enable auf 1
Waitms 5
Porta.1 = 0 'enable auf 0
Waitms 5
' Niederwertiges Nibble setzen
If Zeichen.0 = 1 Then Porta.4 = 1 Else Porta.4 = 0
If Zeichen.1 = 1 Then Porta.5 = 1 Else Porta.5 = 0
If Zeichen.2 = 1 Then Porta.6 = 1 Else Porta.6 = 0
If Zeichen.3 = 1 Then Porta.7 = 1 Else Porta.7 = 0
' Niederwertiges Nibble übertragen
Porta.1 = 1
Waitms 5
Porta.1 = 0
Waitms 5
'error 229 line 0 end sub or end function expected
End Sub
End
Schwer was zu sagen: select all & copy & paste und compiliert, und keine Fehler
molleonair
15.02.2006, 19:23
ich hab bascom mehrfach deinstalliert und installiert registry gelöscht
alle updates und die demo getestet
hab ständig fehlermeldungen in den einfachsten codes
und das für 100 euro na vielen dank
Kollege ! Schlechter Handwerker schimpft auf das Werkzeug !
Wenn ICH den stiefel ohne Tricks übersetzen kann, spinnt von uns vieren
Ich, mein Bascom
Du, dein bascom
offenbar einer wirklich !
Du wirst sehen, kaum machst du es richtig, wird es auch schon gehen !
:Haue
Torsten_G
15.02.2006, 20:27
Hi,
na, wirst Du wohl aufhören, hier meinen Lieblingscompiler madig zu machen... [-X :mrgreen:
Ich habe bei Deinem Code identische Fehlermeldungen.
Auf den ersten Blick würde ich sagen, der Code passt nicht zum in den "Options" eingestellten Chip.
Ich würd´s gern gegentesten, aber Du gibst ja Deinen Prozessor nicht an.
Um solche Fehler grundsätzlich zu vermeiden, solltest Du es Dir angewöhnen, die Compiler-Direktiven in den Code zu schreiben, hier ein Beispiel für den Mega 8:
'Definition für Mega 8
$regfile "m8def.dat"
'Angabe der Taktfrequenz (4Mhz)
$crystal = 4000000
Und immer dran denken:
Die fettesten Bugs sitzen meist zwischen den eigenen Ohren... #-o
Viele Grüße
Torsten
Hi,
welchen Controller benutzt du denn ?
Ich hab' die gleichen Probleme, wenn ich den 2313 oder 2323 auswähle.
Beim Tiny 2313 geht es dann wieder.
Bei anderen Chips geht es ebenfalls problemlos.
Übrigens, wo gibt's denn Bascom für 100 Euro ???
Kostet doch nur 78 ?
Gruß
Christopher
molleonair
15.02.2006, 21:07
da hast du wohl recht ...
aber ich hab das problem jetzt einkreisen können es liegt wohl an dem update das ich gemacht hab
habs alte orginal (xx.12) aufm laptop mal installiert da hab ich die fehler nicht
und beim neuen (xx.18.2) hab ich wenn ich nen den code fürn mega 16 compile keinen fehler
aber wenn ich den fürn tiny26 compile kommt immer die meldung
"baudrate not possible"
was soll das ich hab gar nix mit baudrate eingestellt
hier mein geänderter code mit crystal und def
wenn ich $baud verwende krieg ich gleich noch ne fehlermeldung
$crystal = 8000000
$regfile = "at26def.dat"
Dim Zahler As Byte
Dim Richtung As Bit
Richtung = 1
Dim Zeichen As Byte
Declare Sub Zumdisplay(byval Zeichen As Byte) 'funktion zum senden an das display
Db4dis Alias Porta.4
Db5dis Alias Porta.5
Db6dis Alias Porta.6
Db7dis Alias Porta.7
Rsdis Alias Porta.0
Enabledis Alias Porta.2
Config Lcdpin = Pin , Db4 = Db4dis , Db5 = Db5dis , Db6 = Db6dis , Db7 = Db7dis , E = Enabledis , Rs = Rsdis
Initlcd
Call Zumdisplay(&B00101100) 'aufruf zum initialisieren
Waitms 5 'des display controllers
Call Zumdisplay(&B00001001)
Waitms 5
Call Zumdisplay(&B00101000)
Waitms 5
Call Zumdisplay(&B00000110)
Waitms 5
Call Zumdisplay(&B00001100)
Waitms 5
Config Lcd = 20 * 4a 'display als 20 zeichen mal 4 zeilen
Do
If Richtung = 1 Then Incr Zahler Else Decr Zahler
If Zahler = 255 Then Richtung = 0
If Zahler = 0 Then Richtung = 1
Waitms 500
Cls
Upperline
Lcd Zahler
Loop
End
Sub Zumdisplay(byval Zeichen As Byte)
' Höherwertiges Nibble setzen
If Zeichen.4 = 1 Then Set Db4dis Else Reset Db4dis
If Zeichen.5 = 1 Then Set Db5dis Else Reset Db5dis
If Zeichen.6 = 1 Then Set Db6dis Else Reset Db6dis
If Zeichen.7 = 1 Then Set Db7dis Else Reset Db7dis
' höherwertiges nibble übertragen
Set Enabledis
Waitms 5
Reset Enabledis
Waitms 5
' Niederwertiges Nibble setzen
If Zeichen.0 = 1 Then Set Db4dis Else Reset Db4dis
If Zeichen.1 = 1 Then Set Db5dis Else Reset Db5dis
If Zeichen.2 = 1 Then Set Db6dis Else Reset Db6dis
If Zeichen.3 = 1 Then Set Db7dis Else Reset Db7dis
' Niederwertiges Nibble übertragen
Set Enabledis
Waitms 5
Reset Enabledis
Waitms 5
End Sub
Hi,
das ist ja echt lustig mit der Baudrate.
Da meckert Bascom bei einigen Chips, obwohl gar nix im Code steht (leeres File, oder nur Kommentare) bei anderen Chips geht's.
Gruß
Christopher
molleonair
15.02.2006, 21:38
mag sein das es für dich lustig ist ...
das problem ist das ich nicht clever genug bin ne lösung zu finden
also was soll man da machen
Wo liegt der Fehler bei mir oder beim ach so tollen compiler ??
Hi,
Eventuell hat Bascom beim letzten Update irgendwelche Bugs bekommen.
Da hilft zum endgültigen klären wohl nur eine Anfrage / Bugreport an mcselec.
Mark kümmert sich meistens SEHR schnell um solche Sachen.
Ein großer Vorteil meines Lieblingscompilers. ;)
Gruß
Christopher
molleonair
15.02.2006, 21:55
hast du vieleicht ne mail von dem mark
und spricht der deutsch
hab schon versucht ne mail an mcs zu schicken da hab ich irgendeine validierungsmail zurück bekommen wo ich nicht kappiert hab was ich damit soll
muß man informatik studieren um ne email zu versenden
und danke fürs ausprobieren Gruß Daniel
Hi,
mailadresse hab' ich zwar, weiß aber nicht, ob ich die weitergeben darf.
Anscheinend haben die auch was am Support geändert..
Es gibt da jetzt den kostenpflichtigen "Premium" Support. 199€
Gibt's jetzt nur noch kostenpflichtigen Support ?
Oder finde ich die Supportadresse auch nicht.
( "Die "info" Adresse gibts aber noch)
Die "BAUD rate not possible" Meldung geht übrigens bei bestimmten Einstellungen für den Quarz weg.
Beim Tiny45 zB. mit:
$crystal=100000
mit:
$crystal=400000 geht's nicht
Übrigens schreibt Bascom als Zeilennummer immer die letzte Zeile.
Also auch, wenn nichts drinsteht.
Wenn ich also mit der Return Taste leere 100 Zeilen einfüge, sieht Bascom den Fehler in Zeile 100, auch wenn nur Code in den Zeilen 1-10 steht.
Strange...
Gruß
Christopher
Torsten_G
16.02.2006, 13:00
Hmm... haben nicht einige Atmel-Chips, die nur mit ihrem internen Taktgeber arbeiten können, festgelegte Teilungsraten?
Das würde erklären, warum manche Taktfrequenzen bei bestimmten Chips nicht funktionieren...
Viele Grüße
Torsten
Wenn ich also mit der Return Taste leere 100 Zeilen einfüge, sieht Bascom den Fehler in Zeile 100, auch wenn nur Code in den Zeilen 1-10 steht.
Strange...
Ja, seltsam ist das schon. Über das Thema gab es ja bereits einen Thread.
Mein anfänglicher Ärger legte sich aber, nachdem ich fesstellte, daß die Datei(en) trotz Fehlermeldung vollkommen korrekt kompiliert werden und dieses Kompilat auch anstandslos lauffähig ist.
BTW: Die "Baudrate not possible" Meldung kommt seit der ...8.1 als Fehlermeldung bei allen Prozessoren, die keinen HW-UART haben. Die ...8.0 gibt keine Fehlermeldung aus, schaut man aber unter "Compile result" nach, findet sich hier unter "Warnings" bereits das Gemeckere.
Das dürfte daran liegen, das es unter unter Options/Communication keine Möglichkeit gibt, diese Voreinstellung abzuschalten. Gleich ob man nun HW-RS232 nutzt oder nicht, der Compiler prüft...
Wie gesagt: auf den generierten Code hat das keinerlei Auswirkungen.
Grüße
Henrik
Hi Henrik,
Danke für die Erklärung. Das macht Sinn.
Gruß
Christopher
molleonair
16.02.2006, 17:03
Ja Danke ...
auf die idee den code trotz fehlermeldung in den prozessor zu flashen
bin ich nicht gekommen
aber es funktioniert
super_castle
16.02.2006, 17:24
...na, wirst Du wohl aufhören, hier meinen Lieblingscompiler madig zu machen...
na, der hellste bis du auch nicht, weil du noch nicht an die einfachen grenzen von bascom gekommen bist. wenn du halbwegs gut proggen tust mit dem avr hast du diese schnell erreicht und wirst mit selbstgebauten bascomlib weitermachen damit es wieder bergauf geht.
Castle
molleonair
16.02.2006, 17:40
wenn nur der der hellste ist, der bascom an seine grenzen bringt ,dann bin ich wirklich nicht der hellste.
Beschäftige mich mit dem atmel thema auch erst seid einem monat und irgendwann hast auch du genie mal ganz unten angefangen gell?
Aber trotzdem Danke an alle die auch hier geholfen haben.
Hi Daniel,
da Thorsten zitiert wurde, war wohl er gemeint.
Was den Spruch und den Rest des Beitrags auch nicht besser macht :(
Gruß
Christopher
Torsten_G
18.02.2006, 00:13
Super, Castle!
Das muß man Dir lassen, Deine Beiträge haben fast immer einen hohen Popcorn-Faktor... :mrgreen:
Reinhold Blasius
14.11.2013, 15:13
Hi Daniel,
da Thorsten zitiert wurde, war wohl er gemeint.
Was den Spruch und den Rest des Beitrags auch nicht besser macht :(
Gruß
Christopher
Kindergartenkram.Wer sich mit seinem Hobby nicht auskennt,soll in den Hof spielen gehen.
@Reinhold Blasius
Geht's noch? Der Thread ist bald acht Jahre alt ... :-)
HeXPloreR
14.11.2013, 16:44
Kindergartenkram.Wer sich mit seinem Hobby nicht auskennt,soll in den Hof spielen gehen.
Und da das Hobby ja auch nicht ansatzweise manchmal etwas komplizierter ist, fällt einem wie Dir auch nicht ein. Angefangen hast Du vermutlich auch nicht irgendwie und fragen hattest Du auch nie welche. Du kannst alles - dann fühle Dich glücklich und lass andere Leute ihre Probleme mit uns teilen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.