- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 14

Thema: Atmega2560

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von Gucky Beitrag anzeigen
    Ein Problem habe ich noch mit dem Port K.
    Hier bekomme ich bei den Anweisungen "out portk, R16" und "sts portk, r16" die Fehlermeldung "Invalid register"
    Hallo,

    für "Invalid register" gibt es eigentlich keinen Grund. Immer noch die m2560def.inc in Verwendung?
    Groß Kleinschreibung sensitiv irgendwo eingestellt?
    Versuchsweise statt PORTK die Adresse des Registers angeben: 0x108 bzw. dezimal 264

    Ansonsten mal das komplette Programm posten.

    Gruß
    Searcher
    Geändert von Searcher (15.06.2020 um 07:31 Uhr) Grund: Registeradresse berichtigt
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Searcher Beitrag anzeigen
    Immer noch die m2560def.inc in Verwendung?
    Mal in den File reinschauen, was da zu Port K so steht.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    24.05.2005
    Ort
    NRW
    Beiträge
    39
    ich glaube, der Lösung auf der Spur zu sein, kann ich jetzt aber auf die schnelle nicht beschreiben.
    Werde wohl erst Ende der Woche wieder dran kommen und poste dann hier das Ergebnis.

    Gruß
    Gucky
    Wissen ist Macht, nichts Wissen macht nichts !

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Gucky Beitrag anzeigen
    ich glaube, der Lösung auf der Spur zu sein, kann ich jetzt aber auf die schnelle nicht beschreiben.
    Damits nicht so lange dauert, hier ein Auszug aus der Include-Datei. Hab ich mit Googles Hilfe gefunden, da ich keine AVRs benutze:

    Code:
    .equ	TCCR5C	= 0x122	; MEMORY MAPPED
    .equ	TCCR5B	= 0x121	; MEMORY MAPPED
    .equ	TCCR5A	= 0x120	; MEMORY MAPPED
    .equ	PORTL	= 0x10b	; MEMORY MAPPED
    .equ	DDRL	= 0x10a	; MEMORY MAPPED
    .equ	PINL	= 0x109	; MEMORY MAPPED
    .equ	PORTK	= 0x108	; MEMORY MAPPED
    .equ	DDRK	= 0x107	; MEMORY MAPPED
    .equ	PINK	= 0x106	; MEMORY MAPPED
    .equ	PORTJ	= 0x105	; MEMORY MAPPED
    und

    Code:
    ; ***** PORTK ************************
    ; PORTK - PORT K Data Register
    .equ	PORTK0	= 0	; PORT K Data Register bit 0
    .equ	PK0	= 0	; For compatibility
    .equ	PORTK1	= 1	; PORT K Data Register bit 1
    .equ	PK1	= 1	; For compatibility
    .equ	PORTK2	= 2	; PORT K Data Register bit 2
    .equ	PK2	= 2	; For compatibility
    .equ	PORTK3	= 3	; PORT K Data Register bit 3
    .equ	PK3	= 3	; For compatibility
    .equ	PORTK4	= 4	; PORT K Data Register bit 4
    .equ	PK4	= 4	; For compatibility
    .equ	PORTK5	= 5	; PORT K Data Register bit 5
    .equ	PK5	= 5	; For compatibility
    .equ	PORTK6	= 6	; PORT K Data Register bit 6
    .equ	PK6	= 6	; For compatibility
    .equ	PORTK7	= 7	; PORT K Data Register bit 7
    .equ	PK7	= 7	; For compatibility
    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von Klebwax Beitrag anzeigen
    Code:
    .equ    PORTK    = 0x108    ; MEMORY MAPPED
    Stimmt. Oben hatte ich fälschlich die Adresse vom PINJ Register angegeben. Ist jetzt berichtigt.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    24.05.2005
    Ort
    NRW
    Beiträge
    39
    Danke für eure Bemühungen. Ich habe die Lösung für den Assembler gefunden.
    Alles, was über die Adresse 3f adressiert wird, geht nur über eine indirekte Adressierung z.B. über das Register Z.

    Beispiel:

    ;Datenrichtungsregister definieren
    ldi r16, 0x01 ;r16 mit 01 laden
    ldi zh, high(ddrk) ;High-Adresse von ddrk nach zh
    ldi zl, low(ddrk) ;Low-Adresse von ddrk nach zl
    st z, r16 ;Das Datenrichtungsregister k (ddrk) Bit 0 wird aus Ausgang, Bit 1...7 auf Eingang gesetzt

    ;Ausgang einschalten
    ldi r16, 0x01 ;r16 mit 01 laden
    ldi zh, high(portk) ;High-Adresse von portk nach zh
    ldi zl, low(ddrk) ;Low-Adresse von portk nach zl
    st z, r16 ;Das Port k Bit 0 wird eingeschaltet

    Gruß Gucky
    Wissen ist Macht, nichts Wissen macht nichts !

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von Gucky Beitrag anzeigen
    Alles, was über die Adresse 3f adressiert wird, geht nur über eine indirekte Adressierung z.B. über das Register Z.
    Hallo Gucky,
    das bezweifle ich. Mit AVR Studio 4.19 geht es auch mit STS über Adresse 3f.

    Wie kommst Du darauf, daß es nur über indirekte Adressierug läuft?


    List File erzeugen kann man beim Studio 4.19 über Menü "Projekt" -> "Assembler Options" einstellen.
    In Studio 6 scheint es anders zu sein. Vielleicht hilft Dir das weiter:
    https://www.avrfreaks.net/forum/how-...ting-list-file

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Es gibt/gab beim AVC wohl verschiedene Kerne,
    Beim AVRrc (reduced Core) gibt es tatsächlich Einschränkungen.

    Aus dem Instruction Manual:

    Anhang 35077
    Anhang 35078 Anhang 35079

    Das spräche dafur, dass eventuell ein falscher Controller/Kern ausgewählt ist, wenn er Dich anmeckert.


    Siro
    Geändert von Siro (16.06.2020 um 07:31 Uhr)

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    24.05.2005
    Ort
    NRW
    Beiträge
    39
    Hallo @Searcher,

    Sorry für meine Falschaussage und das ich mich jetzt erst melde.

    Mit dem STS-Befehl funktioniert das, hatte leider an einem falschen Pin gemessen.

    Jetzt habe ich aber noch ein viel größeres Problem:
    Nach einen der letzten Windows-Updates bekomme ich den Debugger und mein AVRISP MKII nicht mehr ans laufen.
    Im Tool wird nur noch ein Simulator angezeigt.
    Im Netz habe ich nach Windows-Updates nur etwas über die nicht funktionierenden Drucker gefunden.
    Ich habe die letzten Windows-Updates deinstalliert und das Atmel-Studio neu installiert.
    Zumindest läuft mein Drucker wieder.

    Ich krieg eine mittelschwere Kriese.

    Gruß Gucky
    Wissen ist Macht, nichts Wissen macht nichts !

Ähnliche Themen

  1. PWM auf dem ATMEGA2560
    Von Mithrandir im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 08.03.2014, 22:12
  2. Atmega2560 : PWM beeinflusst ADC
    Von sportfreak im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 21.01.2010, 17:59
  3. Grundschaltung ATMega2560
    Von Jaecko im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 27.08.2008, 07:08
  4. ATMEGA2560 Beispielprogramm
    Von mattschach im Forum C - Programmierung (GCC u.a.)
    Antworten: 17
    Letzter Beitrag: 06.01.2008, 15:58
  5. atMega2560 in Bascom
    Von ceekay im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 17.08.2005, 21:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress