-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Andere Register Namen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.01.2010
    Alter
    23
    Beiträge
    119

    Andere Register Namen

    Anzeige

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

    Ich bin grad an meinem ersten Programm, welches ich mit GCC erstelle.
    Ich will Daten mit UART empfangen und habe mir gedacht, dass es am schnellsten geht, wenn ich den Code vom RN-Wissen zum thema UART und FiFo (FiFo weil ich die Variante mit inerrups verwende) nehme.

    So weit so gut. Ich habe aber eine ATmega644..und der Code is für eine ATmega8.

    Hat mir jemand einTipp, wie ich am schnelsten die Registernamen für die ATmega644 herausfinde?

    Gruss
    Hans Dieter
    “C++ is an insult to the human brain.”
    Niklaus Wirth, entwickelte unter anderem die Programmiersprache PASCAL

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Am schnellsten geht es mit dem Datenblatt des 644. Die Unterschiede sind minimal.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Hubert.G Beitrag anzeigen
    Am schnellsten geht es mit dem Datenblatt des 644. Die Unterschiede sind minimal.
    Wenn das überhaupt nötig ist, sehr oft nennen sich die Register gleich, haben aber andere Adressen! Es könnte ausreichen dem Compiler den richtigen Chip mitzuteilen, dann passt der Compiler das schon passend. Einfach einmal austesten.

    Jedenfalls mache ich das unter Bascom so, Ich änder einfach die $regfile = "m88def.dat" Im Header auf den neuen Typ und rufe den Compiler auf. Hat bis jetzt immer geklappt, außer der neue Chip hat zu wenig Platz fürs Programm selber.

    Gruß Richard
    Geändert von Richard (08.04.2011 um 18:51 Uhr)

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.01.2010
    Alter
    23
    Beiträge
    119
    Zitat Zitat von Richard Beitrag anzeigen
    Jedenfalls mache ich das unter Bascom so, Ich änder einfach die $regfile = "m88def.dat"
    ..wenn ich auf Atmega8 einstelle, habe ich nur noch errors, die ICH verbockt habe! Wenn ich aber auf Atmega644 einstelle, habe 13 Errors im Code aus RN-Wissen

    Ein beispiel:
    error: 'UCSRB' undeclared (first use in this function)

    UCSRB kommt nur einmal in dem Datenblatt vor. Und zwar in einem USART Block Diagramm auf Seite 173. Und dass hilft mir nicht weiter Durch was müste ich das jetzt z.B ersetzen??

    Ja Bascom hätte ich jetzt einigermasen begriffen Aber ich will nicht noch geld ausgeben damit ich mehr als 2Kb Code generieren kann..

    Habe auch schon für andere Dinge C angewendet, aber da hatte ich nie mit Registernamen zu tun
    “C++ is an insult to the human brain.”
    Niklaus Wirth, entwickelte unter anderem die Programmiersprache PASCAL

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    So schwer ist das nun auch nicht.
    UBRRH wird UBRR0H,
    UBRRL wird UBRR0L
    UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE); Wird
    UCSR0B = (1<<RXEN0) | (1<<TXEN0) | (1<<RXCIR0);

    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0); wird UCSR0C = (1<<UCSZ01) | (1<<UCSZ00);

    Dann noch UDR0, UCSR0A usw.
    Der Compiler sagt dir ohnehin was er nicht kennt.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.269
    Noch eint Tipp bezüglich des Datenblatts und der verschiednene Register: Oftmals gibt es am ende eines Unterpunktes (z.B. Punkt 16 - USART) eine Zusammenfassung der Register mit ihren Funktionen und Namen. Im Fall des Atmega 644p wäre das die Seite 189 ff. Das n steht dabei für USART 0 bzw. 1 (also ist n etweder 0 oder 1 jenachdem welchen UART man verwenden will)

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.01.2010
    Alter
    23
    Beiträge
    119
    Danke viel mal für eure Antworten! Einge Registernamen hatte ich bereits ersetzen können, jedoch eben nicht alle..

    Jetzt habe ich alle ersetzt

    Warum muss man den beim AVR-Studio erst noch speichern, bevor die änderungen umgesetzt werden? Bei meinen bisherigen Compilern (LitleC/ CompactC und BASIC (bei Bascom bin ich mir nicht sicher)) speichert er vor dem Complimieren automatisch. Ich hatte anfangs nämlich nicht gespeichert

    C:\Users\Hans Dieter\Documents\default/../RRX_ON_Board.c:87: undefined reference to `fifo_get_wait'
    RRX_ON_Board.o: In function `uart_getc_nowait':

    Ich habe noch 5 solche meldungen...und weiss schon wieder nicht woher das kommt..
    “C++ is an insult to the human brain.”
    Niklaus Wirth, entwickelte unter anderem die Programmiersprache PASCAL

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Du wirst die fifo.c und/oder fifo.h nicht im Verzeichnis oder im AVR-Studio nicht eingebunden haben.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.01.2010
    Alter
    23
    Beiträge
    119
    Ach Fifo.c muss auch eingebunden werden? Warum kann man diesen Code dann nicht einfach noch in Fifo.h schreiben?

    Egal! Jetzt ist alles OK!
    “C++ is an insult to the human brain.”
    Niklaus Wirth, entwickelte unter anderem die Programmiersprache PASCAL

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Zitat Zitat von Naturp Beitrag anzeigen
    Ach Fifo.c muss auch eingebunden werden? Warum kann man diesen Code dann nicht einfach noch in Fifo.h schreiben?
    Angenommen du hast in deinem Projekt mehrere C-Dateien, in denen der FiFo-Code genutzt werden soll. Was passiert nun, wenn der FiFo-Code mit im Header steht, so wie von dir vorgeschlagen?
    MfG
    Stefan

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. bot noch ohne namen
    Von ElchiMtr im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 15
    Letzter Beitrag: 28.10.2010, 23:46
  2. Haben eure roboter Namen ?
    Von michiE im Forum Umfragen
    Antworten: 66
    Letzter Beitrag: 20.07.2007, 20:22
  3. RN-MEGA2560 RC Empfang geht nicht andere Register ?
    Von Steffen44 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 3
    Letzter Beitrag: 24.02.2007, 14:24
  4. Namen der Ports, Motorausgänge etc. für die C-Programmierung
    Von NikNek im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 2
    Letzter Beitrag: 28.07.2006, 13:30
  5. Interne Register und Register in SRAM
    Von FoCus im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 27.07.2005, 13:06

Berechtigungen

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