www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmänderung DS1820


Autor: Marco (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...
Im Internet habe ich folgendes Programm für einen AT90S2313 gefunden, 
diese möchte ich so verändern, das es auf einem AT90S8515 läuft. Alle 
meine Versuche sind gescheitert...
Wer kann mir bei der Änderung helfen und diese gegebenfalls auch 
kommentieren, so das es für mich nachvollziehbar ist.
Danke...

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so ich habe da noch was vergessen, die Temperatur soll nicht über 
ein LCD sondern, über Terminalprogramm angezeigt werden.

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo  Marco

Erstmal mußt du den Stackpointer auf den 8515 anpassen. Der 8515 hat SP 
register.

Dann uß natürlich hier der richtige MCU eingetragen werden.

.include "d:\avr\2313def.inc"

Taktfrequenz muß natürlich paßen, wegen der delays.

Was sagt den das Studio ???
MFG

Dieter

Autor: Marco (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So ich habe nun den Pfad geändert.
In der Simulation läuft das Programm bis:

wait500us:
  ldi delay2, 6
  ldi delay1, 200
  wait500us_1:
  inc delay1
  brne wait500us_1
  dec delay2
  brne wait500us_1
  ret

und hängt dann dort irgend wo fest...

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marco

Schau mal rein.

http://www.mikrocontroller.net/tutorial/stack.htm

Der Stack Pointer paßt noch nicht.

MFG
Dieter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So gehts nicht !

Du must nach dem Start der Messung min 0,5s warten (0,75s beim DS18B20).

Mann kann auch das Busy-Bit testen, d.h. immer Reset und ein Bit lesen 
usw. bis Bit = 1, aber nur, wenn man kein parasite power benutzt.


Um den Code portabel zu halten, sollte der 1W-Pin mit einem Namen und 
nicht direkt angesprochen werden.

Auch die ganzen Delays sollte man den Assembler aus der Quarzfrequenz 
selber berechnen lassen, damit man auch andere Quarze verwenden kann, 
wie z.B. hier:

http://www.mikrocontroller.net/forum/read-4-27035.html

Auch ist es einfacher, gleich einen DS18B20 zu nehmen, da muß man nicht 
erst viel rechnen, um das Ergebnis in 0,0625°C-Schritten zu erhalten.


Ob das delay 500µs ist weiß ich nicht, aber es ist keine Endlosschleife, 
d.h. es hängt nicht fest.


Peter

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ >Dieter
ich bin absoluter Neuling  auf dem Gebiet und einiges fällt mir noch 
echt schwer zu verstehen.
Ich benötige immer ein laufendes Programm, was ich nachvollziehen kann, 
um es zu verstehen.

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marco

Wenn du die 2 Zeilen einträgst, läuft es bei mir durch. Ob es geht kann 
ich dir im Moment nicht sagen.

ldi temp1, LOW(RAMEND)  ;LOW-Byte der obersten RAM-Adresse
out SPL, temp1
ldi temp1, HIGH(RAMEND) ;HIGH-Byte der obersten RAM-Adresse
out SPH, temp1

anstatt von

ldi temp1, ramend      ;stack einrichten
out spl, temp1

Der 8515 hat mehr speicher und muß deshalb über 2 variablen eingestellt 
werden. Man stellt damit den SP auf das Ende des Speichers ein. In 
diesem Bereich werden dann die Rücksprungadressen gespeichert, für rcall 
usw.

MFG
Dieter

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.