PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme bei der Programmierung des Butterflys



Heiko R.
20.10.2005, 13:55
Hallo,

ich habe ein Problem mit der Programmierung mit Bascom. Ich bin ein absoluter Anfänger in diesem Bereich. Ich hatte mir ein Programm in C++ für den Butterfly geschrieben und musste feststellen das die Programmierung darüber nicht möglich ist. (oder wenn dann zu teuer) Deshalb habe ich mir Bascom (Vollversion) besorgt und das Programm dahingehend umgeschrieben. Doch irgendwie geht die Programmierung auch nicht.
Das regfile für den Atmega169 wird schon nicht angenommen und ist auch nicht vorhanden. Wie bekommt man das denn?
DIe Programmierung sollte über einen AVRISP geschehen, aber da habe ich scheinbar einen reset chip verursacht. Habe aber das Ursprungsprogramm wieder hinbekommen.
Als nächstes versuchte ich die Programmierung über den UART, aber leider klappt das auch nicht. Es erscheint bei AVR Studio immer die Meldung (wenn ich auf tools und dann auf AVR prog gehe) "unsupported board found". Was ist denn da zu tun. Ich bin schon die Programmierung nach "programming for idiots like me" durchgegangen und komme auf keinen grünen Zweig.

Ich könnte also etwas Hilfe gebrauchen.

Vielen Dank im Voraus.

Gruß Heiko

Millenniumpilot
20.10.2005, 14:26
Hallo,

soweit ich es im Kopf habe, stand im Mega8-Buch von Rowalt (dort wurde auch kurz auf das Butterfly eingegangen), daß es für den Mega169 noch kein regfile gibt. Man kann aber ein anderes nehmen und muß einige Register halt selber in Bascom definieren und parametrisieren.
Ich kann heute Abend gerne mal ins Buch schauen und Dir die benötigten Infos geben.

Gruß Dirk

Heiko R.
20.10.2005, 15:46
Hallo Dirk,

das wäre super.

Gruß Heiko

Millenniumpilot
20.10.2005, 16:18
Hallo Heiko,

also mal die Kurzfassung:
- alle Register für die LCD-Treiber liegen im I/O-Raum ab SRAM &H60 und werden daher nicht wie normale I/O-Register sondern wie SRAM-Variablen angesprochen.
- der "vorgetäuschte" Mega16 versorgt den Compiler mit korrekten Daten über Flash, EEPROM- und SRAM-Größe und mit falschen Daten für Interrupts und Register-Namen, die aber im Beispielprogramm nicht stören

Auf der CD sind für das Butterfly 2 Beispielprogramme vorhanden. Die zweite Version ist für BASCOM >= 1.11.7.5. Dort scheint der Mega169 schon unterstützt zu werden. Ich poste hier mal beide Beispielprogramme:

'Butterfly.bas: ATmega169 mit Bascom 1.11.7.4
'Hardware: AVR-Butterfly
'----------------------------------------------------------
$Regfile="m16def.dat" 'ATmega16 vortäuschen
$Crystal=1000000 'Interner RC-Oszillator mit 1 MHz
'
'Register im erweiterten I/O-Bereich als Variablen:
Dim LCDCCR As Byte At &HE7 'LcdContrastControlRegister
Dim LCDFRR As Byte At &HE6 'LcdFrameRateRegister
Dim LCDCRB As Byte At &HE5 'LcdControlAndStatusRegister B
Dim LCDCRA As Byte At &HE4 'LcdControland StatusRegister A
Dim LCDDR0 As Byte At &HEC 'LcdDriverRegister 0
Dim LCDDR1 As Byte At &HED 'LcdDriverRegister 1
'
'LCD initialisieren:
LCDCRB=&B10100100 '32768Hz, Bias 1/3, Duty 1/3,
' PortMask SEG0...SEG20
LCDFRR=&B00000110 'LCD-Takt 49Hz, siehe Tabelle im Datasheet
LCDCCR=&B00001110 'LCD-Spannung 3.3 V (Kontrast)
LCDCRA=&B10000000 'LCD an
'
'Eine kleine LCD-Ausgabe:
LCDDR0=&B01000100 'Segmente "1" und "2"
LCDDR1=&B00100010 'Segmente "4" und "5"
'
Do:Loop
'[Listing zum AVR-Mikrocontroller-Lehrbuch von Roland Walter, www.rowalt.de]



'Butterfly.bas: ATmega169 mit Bascom >= 1.11.7.5
'Hardware: AVR-Butterfly
'----------------------------------------------------------
$Regfile="m169def.dat" 'ATmega169-Deklarationen
$Crystal=1000000 'Interner RC-Oszillator mit 1 MHz
'
'LCD initialisieren:
LCDCRB=&B10100100 '32768Hz, Bias 1/3, Duty 1/3,
' PortMask SEG0...SEG20
LCDFRR=&B00000110 'LCD-Takt 49Hz, siehe Tabelle im Datasheet
LCDCCR=&B00001110 'LCD-Spannung 3.3 V (Kontrast)
LCDCRA=&B10000000 'LCD an
'
'Eine kleine LCD-Ausgabe:
LCDDR0=&B01000100 'Segmente "1" und "2"
LCDDR1=&B00100010 'Segmente "4" und "5"
'
Do:Loop
'[Listing zum AVR-Mikrocontroller-Lehrbuch von Roland Walter, www.rowalt.de]

hrei
20.10.2005, 16:45
Hallo,

evtl. hilft das weiter:

http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=343

Dort steht eine neue Library für den Schmetterling.

Grüße
Henrik

Heiko R.
21.10.2005, 07:24
Hallo,

ich habe aber die Version 1.11.6.3, und das auf einem Rechner der nicht mit dem Internet verbunden ist (ist von Arbeit so eingerichtet) . Wie komme ich da an das Update, da es scheinbar ohne dieses nicht geht.

Gruß Heiko

Millenniumpilot
21.10.2005, 09:08
Hallo,

na von einem anderen Rechner mit Internetzugang ;-)
Z.B. an dem, wo Du gerade sitzt.
Dann auf CD oder USB-Stick.

war Deine Frage ernst gemeint?

Gruß Dirk

Heiko R.
21.10.2005, 12:52
Hallo Dirk,

na ja, so ein bissel schon, da ich nicht weiß ob ich es auch so laden kann. Ich habe mal nachgeschaut wo ich es herbekomme, aber leider kann ich von der MCS-Seite nichts runterladen.(zumindest habe ich nichts gefunden) Muss ich die Version die ich da habe noch regestrieren? Ich versuche mich auf Arbeit halt in die AVR-Problematik einzuarbeiten, aber ich muss leider feststellen das es schwerer ist als ich gedacht hatte und es nicht mit dem Programm alleine getan ist, zumal meine Kentnisse im Überspielen der Daten fast gegen Null gehen.

Ich habe auch gleich noch eine Frage: Ich bekomme beim Butten "compile current" die Meldung "File not found". Was will er denn da von mir? In dem Fall arbeite ich wieder mit der Demoversion die den Atmega169 auch beinhaltet.

Ich habe jetzt 2 Möglichkeiten den Butterfly zu programmieren. Möglichkeit 1: mit dem AVR ISP. Möglichkeit 2 per 3Kabelvariante die immer im internet beschrieben ist. (auch seriel)
Welche ist denn die bessere?

Eine Frage hab ich noch: Hier der Ablauf den ich immer gehe, da ich es nicht besser weiß:Ich erstelle doch mit dem Bascom das Programm, richtig? Dann speichere ich es, richtig?(wenn da keine Fehlermeldung kommt) Dann gehe ich in das AVR Studio4 und versuche das Programm zu laden. (Das will aber irgendwie nicht immer gehen) Dann versuche ich das Programm auf den Butterfly zu überspielen, richtig? Dazu gehe ich auf connect AVR (wenn ich den ISP habe) und versuche das programm in den Flasch zu schreiben, ist das überhaupt richtig?
So hatte ich zumindest das Butterfly originalprogramm wieder raufgespielt als ich es vorher irgendwie verwurschtelt hatte.
Habe ich diese 3Kabelvariante dann gehe ich auf AVR prog nur da bringt er mir die Meldung "not supported Bord found".

@ all:An welcher Stelle mache ich Fehler. Ich weiß ich stelle viele Fragen die evtl. oder mit Sicherheit recht plump sind, ](*,) aber ich kenne mich halt noch nicht aus. Könntet ihr mir da helfen?

Vielen Dank

Gruß Heiko

Des w

Heiko R.
21.10.2005, 14:01
Ach ja ich hab ja noch was vergessen,

die Version 1.11.6.3 erzeugt bim speichern ein bas, CFG, ERR,BM-file. Zusätzlich noch ein obj-file. Dieses wird aber angefressen dargestellt. Die Demoversion erzeugt beim speichern nur ein bas, CFG und das angefressene obj-file. Wofür sind die beiden anderen Files? Und wo bekomme ich die Hexdatei her die ich in den mega169 schicke?

Weiterhin kommt beim Speichern die Meldung: Confirm und darunter: "leave the old CFG-file?" Was ist damit denn gemeint?

Und wenn ich das Programm im Bascom simulieren möchte kommt eine Meldung "no obj or dat-file found!"

Hm, könnt ihr mir da auch noch weiterhelfen.

Bitte nicht vor mir weglaufen wenn ich solche Fragen stelle. (Ich kenne das da ich selbst in einem Aquaristikforum unterwegs bin und da auch solche Fragesteller auftauchen die fast keine Ahnung haben)

Gruß Heiko

Millenniumpilot
21.10.2005, 14:08
Hallo Heiko,

nur ganz kurz, muß ja auch mal arbeiten ;-)

> Ich bekomme beim Butten "compile current" die Meldung "File not found

kommt mir bekannt vor. Bei der Demo ist wohl ein Bug.
Du mußt vor dem Compilieren eine leere Datei anlegen, welche so heist wie Dein Quelltext mit der Dateiendung .bin

Also zusätzlich zu meintestprogramm.bas die Datei meintestprogramm.bin anlegen. Dann sollte ich ein Stück weitergehen ;-)

Gruß Dirk

21.10.2005, 18:55
Hallo Dirk,

na mal schauen ob das funktioniert. Muss aber leider bis Montag warten.

Schon mal Danke!

Gruß Heiko

Heiko R.
24.10.2005, 07:33
Hallo,

das mit dem bin-file hat prima funktioniert. Es kommt zwar noch die Meldung "Watchdog timeout" beim Simmulieren, aber das ist nicht das Problem wegen dem ich "schon" wieder hier bin. Und zwar muss ich in der "Initialisierung" oder wie man das auch nennt, für den Butterfly "$lib "butterfly.lib" schreiben (habe ich von einem Komolitonen der schon ein Programm für den Butterfly in seiner Projektarbeit geschrieben hat), aber bei der Demoversion kommt die Errormeldung "Library file not found". Liegt das an der Demoversion und passiert nicht mehr bei der Vollversion oder liegt das an einem weiteren Fehler meinerseits?

Die Initialisierung sieht bei mir wie folgt aus:
$regfile = "m169def.dat"
$crystal = 4000000
$baud = 19200
$lib "butterfly.lib"

Ist das so in Ordnung?

Ach ja gleich noch eine Frage. Wenn ich das Programm mal in dem Butterfly haben sollte, wie starte ich das dann? Startet das Programm dann über den Joystick, von selbst oder muss man das auch irgendwie programmieren? Das Problem ist aber erstmal nur zweitrangig, da ich erstmal die Library finden muss.

Fragen über Fragen! Bekomme ich darauf auch Antworten über Antworten? 8-[

Gruß Heiko

Millenniumpilot
24.10.2005, 09:00
Hallo Heiko,

in meinen hier geposteten Quelltexten aus dem Buch wird keine extra Library benötigt. Hast Du dieses schon mal ausprobiert. Mache doch kleinere Schritte bei der Einarbeitung in ein neues Gebiet.

Gruß Dirk

24.10.2005, 16:07
Hallo Dirk,

ich glaube das ich heute den Eeprom überschrieben habe und habe keine Ahnung wie ich das wieder hinbekomme. Aber Gott sei dank habe ich heute noch 2 Butterflys bekommen. Die sollte ich aber besser ganz lassen. Ich werde morgen mal deine Programme ausprobieren und schauen ob sie sich übertragen lassen. Die sind ja genau für den Butterfly, oder? (Also lasse ich es besser mit den großen Schritten wenn ich nicht weiß wo die hinführen) 8-[

Ich melde mich morgen nochmal um Dir bescheid zu geben ob es funktioniert. Kann man eigentlich das Programm auch gleich von Bascom übertragen oder braucht mann immer das AVR studio? (Grund für die Frage ist der Butten Programmer)

Gruß Heiko

Heiko R.
25.10.2005, 06:59
Hallo Dirk,

muss ich bei dem 2ten Programm diese LCDCCR, LCDFRR, LCDCRB, LCDCRB, LCDDR0, LCDDR1 dimensionieren? Oder liegt das daran das ich beim 2. Programm gleich mit dem Atmega169 arbeite?

Gruß Heiko

Millenniumpilot
25.10.2005, 07:59
Hallo Heiko,

nein, ja ;-)

Gruß Dirk

Heiko R.
25.10.2005, 09:54
Hallo Dirk,

das erste Programm bringt mir schon mal keine Fehlermeldung. Aber bei dem 2. erhält man die Meldung "Watchdog Timeout". Das ist mir aber auch das letzte mal passiert als ich den Atmega169 initialisiert habe. Was habe ich denn da wieder verkehrt gemacht. Kann es sein das es nicht mit der Demoversion funktioniert?
Das erste Bsp-Programm läuft zwar im Simmulator aber leider bekomme ich keine LCD Ausgabe.

Kann ich das Programm auch in den Butterfly übertragen wenn dich diesen Atmega16 vorgetäuscht habe, oder mache ich da den Butterfly kaputt?

Gruß Heiko

Heiko R.
28.10.2005, 08:16
Hallo,

ich habe jetzt die Original 1.11.7.9 Version und leider kommt immer noch die Meldung Watchdog Timeout nach dem ersten simulieren. Die Meldung kommt aber nur wenn ich den Atmega169 definiere. Wenn man das ganze dann noch mal simulieren möchte dann kommt die Meldung "Unknown objectcode :[002E] PC : 0001". Woran kann den sowas liegen? Momentan hängen wir da ganz schön in den Seilen.

Kann da einer genaueres sagen?

Gruß Heiko

Heiko R.
28.10.2005, 08:17
Ach ja, fast vergessen, es passiert auch bei dem kleinen Program von dir Dirk, sowie auch bei allen anderen die ich mit dem Atmega169 simulieren möchte.

Gruß Heiko

Heiko R.
28.10.2005, 08:21
Ich kann das Programm auch mal jemanden senden und der kann dann schauen was ich verkehrt mache.

Gruß Heiko