mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mathematische Berechnungen +,-,x,:


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir jemand für obengenannte Berchnungen jeweils eine 
Programmzeile(assembler) sagen o. lang ein Befehl dafür nicht?
Habe 3 Register Zahl1(R21), Zahl2(R22) und Ergebniss(R23)

Zahl1+Zahl2=Ergebniss
Zahl1-Zahl2=Ergenisss
Zahl1xZahl2=Ergebniss
Zahl1:Zahl2=Ergebniss

Ist das überhaupt möglich oder überschreibt mir das Ergebniss entweder 
Zahl1 o. Zahl2? Also Danke schon mal im vorraus.

Autor: Stefan Weinert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas!


Generell findest Du unter http://www.atmel.com relativ viel Material, 
darunter auch Application Notes, in denen Du Programmierbeispiele finden 
kannst, darunter auch mathematische Berechnungen.
Siehe (http://www.atmel.com/atmel/products/prod201.htm)
Aber: wenn Du multiplizieren willst, kommst Du mit einem 
Ergebnisregister von 8Bit nicht aus, da 8x8Bit (256*256) bis zu 16Bit 
ergeben können. Benutze um mehrere Register zu erhalten die 
Push/Pop-Befehle.
Zu Deinem zweiten Problem: Um eine Zeitbasis zu erhalten, solltest Du 
generell einen Timer verwenden, der einen Interrupt alle 16ms auslöst. 
Die Zeit kannst Du mit den Timer-Konfigurationsregistern einstellen, was 
eigendlich im Datenblatt des Controllers ziemlich gut erklärt ist.
Zu Deinem dritten Problem: Du kannst den E2-Speicher generell nicht für 
Programmcode verwenden. Die Angabe, daß der Flash-Speicher für 1000 
Programmierzyklen gedacht ist, bedeutet nur, daß Atmel bis dahin 
GARANTIERT, Du aber in wirklichkeit mit bis zu 10000 Zyklen gehen 
kannst. Das hat mir ein Distributor von Atmel mal unter der Hand 
mitgeteilt.
Als kleinen Tip: Der kleine Emulator von Atmel kostet gerade mal 450DM, 
damit kannst Du dann schon enorm besser entwickeln als mit dem 
Simulator.
Mit den Atmels hast Du einen recht sinnvollen Einstieg gemacht. Ich 
selbst habe damit für die Industrie einige Geräte programmiert, die in 
mittelgroßen Stückzahlen laufen.

Viel Spaß und viel Erfolg
Stefan

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für deine Antworten, im Datenblatt staht es zwar drin aber
ohne Beispiel kann ich das nicht verwerten. Weitehin hab ichs nicht so 
mit englisch, daher dachte ich das ich vielleicht etwas gut erklärtes in 
deutsch finde. Für meine Multiplikationen langen 8Bit volkommen aus.

>Zu Deinem zweiten Problem: Um eine Zeitbasis zu erhalten, >solltest Du generell 
einen Timer verwenden, der einen Interrupt >alle 16ms auslöst. Die Zeit kannst Du 
mit den Timer- >Konfigurationsregistern einstellen, was eigendlich im Datenblatt 
>des Controllers ziemlich gut erklärt ist.
Genau dazu bräuchte ich ein kleines Beispiel, du kennst keine Quelle im 
net in deutsch?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Beispiel einer 8bit*8bit=8bit Multiplikation findest du im Anhang.
Zu den Timern kommt in den nächsten Tagen ein Tutorial, vielleicht sogar 
noch heute.

MfG
Andreas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke endlich mal ne konkrete Antwort mit der man etwas anfangen kann.

Autor: sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi, könntest du mir das beispiel auch bitte  zusenden, der link oben 
geht leider nicht

sascha

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.