mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler code für ATTiny85 modifizieren und in .hex kompilieren


Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne einen Assembler-Code, der für einen ATTiny85
geschrieben wurde, modifizieren und ins .hex-Format kompilieren.

Es handelt sich um ein Programm, das digitale MIDI Steuerdaten
in ein PWM-Signal umwandelt, das an Pin PB1 ausgegeben wird.

Das Problem ist, dass das Signal wieder auf den niedrigsten Wert
zurückspringt, wenn die Taste losgelassen wird.

Ich schätze, das passiert durch "rcall setNote" in Zeile 207,
in der NoteOffMove Subroutine.

Von Assembler, bzw. Programmiersprachen an sich hab ich so gut wie
überhaupt keine Ahnung und auch nicht die entsprechenden Tools
zum Kompilieren.

Wäre sehr dankbar, wenn mir jemand von euch helfen könnte.

mfG.

: Verschoben durch Moderator
Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verzeihung, es handelt sich um folgendes Projekt:

https://github.com/mitxela/MidiMonotron

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstens:
Du hast im falschen Unter-Forum gepostet.
Hier sollten nur fertige Projekte und Codes gepostet werden.

Wenn ein Moderator diesen Post verschiebt, dann findest Du
ihn wahrscheinlich in "µC & Elektronik" wieder.

Zweitens:
Zeig mal Deinen Quelltext. Wenn der sehr lang ist, dann
als Datei-Anhang.

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin zu langsam beim Schreiben ;-)

Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Projekt ist soweit auch fertig. Es fehlt nur eine winzige Änderung,
um es auf meinen persönlichen Bedarf zuzuschneiden.

Die Arpeggiatorfunktion würde ich auch sehr gern abschalten,
dazu würde ich einfach die setNote-Zeile (60) ebenfalls entfernen.

Bräuchte nur die Bestätigung, dass das dann auch so einfach funktioniert
und dass mir vielleicht jemand dann die bearbeitete .asm-Datei
in eine .hex-Datei umwandeln würde. Das wäre echt cool.

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die asm Datei kann mit AVR Studio 4 übersetzt werden.

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

Bewertung
0 lesenswert
nicht lesenswert
Hab mal Zeile 60 und 207 auskommentiert und kompiliert.
AAABER: Nur weil ich das Projekt interessant finde. Ich finde nämlich 
auch, man sollte es wenigstens versuchen selbst zu übersetzen. Also für 
weitere Hilfe reichen die ersten zwei Kapitel des AVR-Tutorial.

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

Bewertung
0 lesenswert
nicht lesenswert
Hier noch das bearbeitete asm

Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey danke! Hab's mit dem neuen Hexfile probiert, allerdings bleibt jetzt 
das GATE-Signal auch auf HIGH, da muss ich wohl noch an anderen Stellen 
im Code herumprobieren.

Könntest du mir einen Hinweis geben, wie du die Datei kompiliert hast?
Ich brauch das wirklich nur für dieses eine Projekt, weil ich mich 
ansonsten überhaupt nicht mit Mikrocontrollern beschäftige. Und mir 
fehlen ehrlich gesagt auch die Nerven dazu. WinAVR hab ich bereits da. 
Gibt es da nicht eine einfache Befehlszeile?

Autor: pegel (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
1. Lade avrasm2:
http://www.vfx.hu/avr/download/avrasm2.zip

2. entpacke die Datei.

3. Packe deine midiCV.asm in das Verzeichnis das die avrasm2.exe 
enthält.

4. bearbeite deine midiCV.asm

5. erstelle hex Datei:
avrasm2.exe -fI midiCV.asm

6. Fertig.

Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

inzwischen hab ich sechs Stunden zugebracht, den Code trial&error-mäßig
in Atmel Studio 4 (damit ging das Kompilieren super) zu bearbeiten. Mir 
raucht jetzt echt der Kopf.

Den Arpeggiator hab ich gleich ganz entfernt. Das war leicht.

Das CV-Problem jedoch leider nicht. Nach Stunden erfolgloen Abklapperns
der Befehle konnte ich zumindest die Funktion des CV-Outs so 
hinbekommen,
wie ich es wollte, indem ich in der letzten Sub "outputOff" drei Zeilen
 wiefolgt auskommentiert hab:

outputOff:
   clr r16
;   out OCR1A,r16

   cbi PORTB,3
   cbi PORTB,0
 ;  ldi r16, 0b00011011
 ;  out DDRB,r16

   ret


Allerdings funktionierte dann das GATE nicht mehr richtig.
Weiß vielleicht jemand von euch, was man da machen kann?

mfG.

Autor: bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Studio 4*

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsste sich jemand in das gesamte Programm rein denken.
Hast du bemerkt, dass unten auf der Seite

https://mitxela.com/projects/midi_monotron

ein link zu einem eigenen Forum ist?

Autor: bob (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Lösung gefunden! <3

    Die Zeile out OCR1A,r16 muss tatsächlich entfernt werden.
    Ebenso wie die beiden letzen Zeilen der outputOff-Routine.

    Um das Gate-Problem zu lösen, müssen die Zeilen

    in r16,OCR1A
    cp r16,r19
    breq setNoteEnd

    in der SetNote-Subroutine entfernt werden.
    Die Hilfe hab ich in einer Facebookgruppe bekommen.


    Sobald ich das CV Interface auf einem brauchbaren Level habe,
    poste ich den optimierten Code, den überarbeiteten Schaltplan 
(output buffer und Gedöns).
    Vorher frag ich aber nochmal den Urheber, ob das für ihn so okay 
ist.

    Jetzt mach ich drei Kreuze. <3

    wünsche euch noch eine gute Nacht!

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.