mikrocontroller.net

Forum: Compiler & IDEs Atmega88 --> AT90S2333


Autor: Mehmet Kendi (mkmk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten abend allerseits

Ein simples Gerät, das zur Zeit an ca. 50 Oertlichkeiten anstandslos 
sein Dasein fristet.
Nun hat der Kunde eine kleine Nachbestellung getaetigt. Da ich aber hier 
in der Türkei keine Atmega88 auftreiben kann, und wegen den paar Stück 
keine Bestellung in Deutschland aufgeben will, dachte ich mir, ich setze 
anstelle von Atmega88 den AT90S2333 ein, von denen ich noch etliche auf 
Lager habe.
Nachdem ich alle LCD relevanten Daten ins Eeprom ausgelagert, soweit als 
möglich alle globalen Variablen gestrichen und da und dort was 
umgestellt habe, ist es mir gelungen, das Ganze fehlerfrei zu 
compilieren.
Flash: 98% full
Eeeprom: 93% full
Data: 16% full

Nur: es funktioniert nicht. Weder auf der Hardware, noch im Simulator 
(AVR Studio 4.13 SP2).
Sobald ich den globalen Interrupt freigebe (main.c Zeile 187), startet 
der Simulator wieder von vorne, so als haette es einen Reset gebeben.
Wenn ich aber als MCU den Atmega88 eintrage, dann laeuft es ohne 
Probleme: sowohl im Simulator, als auch auf der Hardware.
Der einzige Unterschied: Atmega88 lauft mit internem 8MHz Oszilator, der 
AT90S2333 mit ext. 4MHz Resonator.

Beiliegen die Sourcen.

Dank im voraus.


Eine kleine Notiz am Rande: In meiner Verzweiflung habe ich auch 
versucht, das Ganze auf den Imagecraft Compiler (Vers. 6.31A mit 
Code-Compression) umzuschreiben. Aber das beste Resultat waren 2100 
Bytes, also ca. 103%.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ich finde erstmal keinen offensichtlichen Fehler.  Habe mir auch
mal ein AVR Studio gesucht und versucht, mich in dessen Bedienung
reinzufinden.  Davon abgesehen, dass der Simulator dort keinen
AT90S2333 mehr kennen will und ich den AT90S4433 ausgewählt habe (der
meiner Meinung nach binärkompatibel sein sollte), läuft das bei mir.
Nach dem sei() wird als nächstes in die ISR TIMER0_OVF_vect verzweigt.

Du könntest ja _vector_default mal auf einen RETI legen. Wenn's dann
geht, muss bei dir irgendein Interrupt aktiviert sein, der keine ISR
hat.  Ich finde aber nichts, weder bei der Inspektion des Binärcodes
noch finde ich in der Registeranzeige bei AVR Studio ein anderes
Interruptflag als das für den Überlauf von Timer 0.

Da ich vermutlich eine andere Compilerversion habe als du, hänge ich
mein Hexfile nochmal dran.

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, werde Dein hex-file gleich mal ausprobieren ...

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider. Auch mit Deinem Hex-File funktioniert die Hardware nicht. :(
Wird mir wohl nichts anderes übrig bleiben, als meinen ICE200 zu suchen. 
Ich hab' zwar einen, aber keine Ahnung, wo ich es verlegt habe.
Ich melde mich wieder ...

Danke für Dein Bemühen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es, das mit _vector_default vorher noch zu machen?

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann o Mann, ist mir das peinlich.
Ich hab' also mein ICE200 gefunden. Den 23333 aus dem Sockel genommen 
... und was seh' ich da: Pin 1 (also RESET) war verbogen und hatte 
vermutlich Wackelkontakt.

Es tut mir schrecklich leid. "Quelle bruit pour une omelette ..."
Zu Deiner "Genugtuung": ich reisse mir schon seit 4 Tagen an diesem 
Problem die Haare aus.

Aber auf die Frage, warum es im Simulator nicht funktioniert, habe ich 
keine Antwort.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Shit happens.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>schon seit 4 Tagen an diesem Problem die Haare aus.

So schön die AT90-Teile auch waren, als sie in die Kiste kamen, würde 
ich mir immer die neuen µCs besorgen. Dein Aufwand ist die Bestätigung 
dafür.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Dein Aufwand ist die Bestätigung dafür.

Ein verbogenes IC-Beinchen kann einem auch bei neuen Controllern 
passieren..

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ein verbogenes IC-Beinchen kann einem auch bei neuen Controllern
>passieren..

Schon. Nur, wenn das Programm nicht umgeschrieben worden wäre, hätte 
Mehmet
dies sehr schnell gefunden.
Gemeiner sind die Effekte, die sich auf Grund 'alter Technik' ergeben 
können: BOD verhält sich anders, EEPROM-Inhalt ist nicht stabil, ...
Damit kann man sich u.U. stundenlang beschäftigen, was dann deutlich 
aufwendiger wird, als ein paar Euro für Porto+Verpackung.

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lieber Gast

"Zur Not frisst der Teufel Fliegen".
Natürlich haette auch ich liebend gerne Atmega88'er eingesetzt. Aber ich 
lebe in der Türkei und da gibt es keinen Reichelt und Co.
Man nimmt, was man kriegt. Und wegen den paar Stück eine Bestellung in 
Deutschland aufgeben, waere absurd gewesen.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber ich lebe in der Türkei und da gibt es keinen Reichelt und Co.

Hättet vor den Ferien bescheid sagen sollen, dann hätte dir bestimmt 
einer der vielen Türkei-Urlauber (u.a. mein Beinaheschwager mit Familie) 
die ICs mitbringen können  ... ;)

Übrigens ist es keine Reichelt, da sie Angelika heißt...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.