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.
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
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?
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
Hallo, danke endlich mal ne konkrete Antwort mit der man etwas anfangen kann.
hi, könntest du mir das beispiel auch bitte zusenden, der link oben geht leider nicht sascha
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.