-         

Ergebnis 1 bis 9 von 9

Thema: Brauche kleine Hilfe beim Umschreiben auf Mega32

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594

    Brauche kleine Hilfe beim Umschreiben auf Mega32

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi!

    Meine C-Kenntnisse sind leider äußerst bescheiden und gerade hänge ich...

    Das Original-Projekt stammt hierher:
    http://www.hoelscher-hi.de/hendrik/l...mxanalyzer.htm
    Nun ist aber kein ATmega8515 zur Hand, daher habe ich es auf dem M32 umgebogen, der ist ja auch nicht so viel anders...

    Bestimmt nichts weltbewegenden, der Code ist auch kommentiert, das Projekt compiliert ohne Fehler/Warnings für den M32 (AVRStudio 4), doch nach der ersten LCD-Ausgabe kommt nix mehr, auch die Buttons gehen nicht. M32-Code ist im Anhang!

    Änderungen/Infos soweit:
    - iom32.h im Header von main.c verlinkt
    - PortA auf PortC umgelegt (in lib_lcd.c - für das LCD) - funktioniert auch
    - Der Kram an PortE ist ganz raus - gibts beim M32 nicht - habe ich auch im Source nicht gefunden
    - DIP-Schalter an PortC habe ich im Source auch nicht gefunden - bin ich blind oder wars einfach nicht implementiert?
    - die anderen Pins entsprechen soweit alle dem M8515 (nach Name/Funktion) - also auch EN für den MAX485 usw.
    - In lib_dmx_in.c und lib_dmx_out.c habe ich ISR (UART_RX_vect) und ISR (UART_TX_vect) geändert in ISR (USART_RXC_vect) und ISR (USART_TXC_vect), da kam vorher ein Warning - scheint bei M32 anders zu heißen.
    - In main.c habe ich noch die Zustände der Error-LED gewechselt, da meine Schaltung Anode/Kathode getauscht hat. Also immer PORTD |= (1<<PD7) <-> PORTD &= ~(1<<PD7). Die LED leuchtet übrigens dauerhaft.

    Wo hängt das Ding? Weiß weiß Rat?

    Stefan
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Da Du ja auch den Port C benutzt, hast Du die JTAGEN Fuse auch abgeschaltet ???
    Ist blöderweise als Default aktiviert und beeinflusst den Port C.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Jo klar, die ist schon lange aus PortC tuts ja auch - da ist das LCD dran.
    Hab die Einzelteile auch per Bascom getestet - als Schalter, Display, UART - geht alles.
    Interner 8MHz RC ist an und alles andere aus (also das was Sinn macht).

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    OK JTAGEN ist halt ein Fehler der gerne gemacht wird.

    Was mir noch zu USART einfällt -
    Beim ATMEGA32 muss immer zuerst das Statusbayte ausgelesen werden, sonst geht die Information verloren.
    Das könnte beim 8515 noch anders gewesen sein.
    Schau mal die Schreib und Leseroutinen für den USART durch.
    Ein DMX Startbyte wird üblicherweise als Frame_Error detektiert.
    Wenn dann vorher das UDR ausgelesen wird funktioniert das nicht mehr.
    Ich hab leider kein AVR_GCC auf meinem Rechner, sonst würd ich es bei mir mal ausprobieren.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Hmm also die Registernamen scheinen die selben zu sein.
    So wie ich Atmel kenne tickt das dann auch gleich.
    Kann auf jeden Fall keinen Unterschied erkennen.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    21.07.2008
    Ort
    Moosburg
    Alter
    39
    Beiträge
    49
    Hi!

    Die Poriterung von einem AVR auf einen anderen lässt sich leider nicht so ganz einfach durchziehen, da die Controller an sich nicht 100% kompatibel sind.

    Ich hatte mal das Problem beim Portieren zwischen zwei ATmegas (von 8 auf 32 glaub ich). Hier muss man mit den Registern UBRRH und UCSRC aufpassen. Bei manchen Controllern sind das zwei Register, die tatsächlich unterschiedliche Adressen haben, bei anderen liegen die auf der gleichen Adresse und werden nur durch Bit 7 unterschieden.

    Problematisch ist auch das Pin-Toggle-Feature. Manche Controller können den Zustand eines Ausgangs wechseln, indem PINxy mit 1 beschrieben wird, andere nicht.

    Am Besten die Handbücher der beiden Controller mal zur Hand nehmen und die entsprechenden Features vergleichen.


    Viele Grüße,

    Markus

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    nimm mal für die Tests den Watchdog raus.

    Gruß

    Jens

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Hab alle Zeilen wo "WDT" vorkommt auskommentiert.
    Leider keine Änderung

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Hallo Stefan -

    Du hast PN!

Berechtigungen

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