mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega88 als USBtoRS232


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Bräuchte dringend Hilfe. Hab mir eine Sorce runter geladen bei 
http://members.chello.cz/cesko/IgorPlugUSB_RS232/I... 
. Ist ein USBTORS232 Ccnverter jetzt wollte ich ihn einfach auf atmega 
88 flaschen. Hab die paar Parameter geändert und beim debugen habe ich 
diesen Fehler --- Invalid redefinition of E2END --- Bild im anhang. Kann 
mir jemand helfen?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nicht, denn deine Änderungen und der versprochene Anhang fehlen.

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

Bewertung
0 lesenswert
nicht lesenswert
.device ATmega88
.include "m88def.inc"

;comment for Mega88
.equ  UCR0        =UCSR0B
.equ  UBRR      =UBRR0L
.equ  EEAR      =EEARL
.equ  USR          =UCSR0A
.equ  E2END          =0x127    ;Last EEPROM Adress
.equ  RAMEND128    =0x96+127  ;Last RAM Adress

.equ  inputport      =PINB
.equ  outputport      =PORTB
.equ  USBdirection    =DDRB
.equ  DATAplus      =1    ;signal D+ on PB1
.equ  DATAminus      =0    ;signal D- on PB0 - give on this pin pull-up 
1.5kOhm
.equ  USBpinmask      =0b11111100  ;mask low 2 bit (D+,D-) on PB
.equ  USBpinmaskDplus    =~(1<<DATAplus)  ;mask D+ bit on PB
.equ  USBpinmaskDminus  =~(1<<DATAminus);mask D- bit on PB

.equ  TSOPPort    =PINB
.equ  TSOPpullupPort  =PORTB
.equ  TSOPPin      =2    ;signal OUT from IR sensor TSOP1738 on PB2

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum heisst das hier wohl Codesammlung?

Trotzdem: "comment for Mega88" soll wohl einen Anleitung für irgendwas 
sein.



Oliver

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stand:

;comment for AT90S2313

.include "m8def.inc"
;comment for AT90S2313
.equ  UCR      =UCSRB
.equ  UBRR      =UBRRL
.equ  EEAR      =EEARL
.equ  USR      =UCSRA
.equ  E2END      =127
.equ  RAMEND128    =96+127

.equ  inputport    =PINB
.equ  outputport    =PORTB
.equ  USBdirection    =DDRB
.equ  DATAplus    =1    ;signal D+ on PB1
.equ  DATAminus    =0    ;signal D- on PB0 - give on this pin pull-up 
1.5kOhm
.equ  USBpinmask    =0b11111100  ;mask low 2 bit (D+,D-) on PB

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

lies Dir doch einfach mal die Fehlermeldung durch:

"Invalid redefinition of E2END".

So, und jetzt suchst Du in der von Dir eingebundenen Datei m88def.inc 
nach der Definition von E2END und stellst fest, dass dort der Wert 0x1FF 
zugewiesen wird, was nicht 127 entspricht.

Wie es jetzt weitergeht, müsstest Du wissen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochwas:


Und wenn da vorher Dezimalwerte standen, wieso machst Du dann 
Hexadezimalwerte draus?!?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist egal welche werte ich da rein schreibe passiert nicht auch die 
werte aus m88def.inc. Der schreib immer den blöden fehler hin! Mit 
diesem befehl setzt er einfach die größe fest von dem eeprom aber warum 
das ein fehler ist weis ich auch net bin anfänger!

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas:
   Nur am Rande: Es gibt eine Alternative für einen USB-RS232 Umsetzer, 
die keinen speziellen Treiber benötigt. Für Windoof wird nur eine 
INF-Datei gebraucht. Link:
http://www.recursion.jp/avrcdc/

Einen kleinen Hacken gibts allerdings: Das Teil ist nicht 
Standardkonform und funktionier auf bestimmten Hostkontrollern unter 
Umständen nicht. Ich hatte damit aber noch nie Probleme.

Gruß,
  SIGINT

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ sigint

Den habe ich aufgebaut funktioniert aber ich kann den adc-wandler nicht 
nutzen den ich brauche um spannungsmessung zu betreiben!

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas wrote:
> Das ist egal welche werte ich da rein schreibe passiert nicht auch die
> werte aus m88def.inc. Der schreib immer den blöden fehler hin! Mit
> diesem befehl setzt er einfach die größe fest von dem eeprom aber warum
> das ein fehler ist weis ich auch net bin anfänger!

Das ist ein Fehler weil Du ein Konstante mit .equ nur einmal definieren 
darfst, und das passiert in m88def.inc
Deine erneute Definition ist nicht zulässig, egal welchen Wert sie hat.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke das habe ich jetzt auch rausgefunden! Hab jetzt einen neuen Namen 
gewählt! Hab erst ma 60 Fehler bekommen! Musste alle register umändern 
und Eingänge an den mega88 anpassen stehe aber vor neuem problem!

Error: Invalid register

Bei solchen ausdrücken

cbr  UCR,RXCIE0  ;disable interrupt from UART receiving

sbr  UCR,RXCIE0  ;enable interrupt from UART receiving

Hab auch schon rausgefunden das cbr für cbi stehen muss da das ein 
mapped I/O Register ist?

Was könnte man hier machen?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat den keiner so einen Fehler gehabt??

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas wrote:
> Danke das habe ich jetzt auch rausgefunden! Hab jetzt einen neuen Namen
> gewählt! Hab erst ma 60 Fehler bekommen! Musste alle register umändern
> und Eingänge an den mega88 anpassen stehe aber vor neuem problem!

Schätze mal das war die falsche Änderung.

Du hättest wahrscheinlich einfach nur deine Definition für E2END 
auskommentieren müssen.

In diesem SourceCode Abschnitt werden offenbar ein paar Hardwaredinge 
festgelegt die in deinem IncludeFile anscheinend sowieso festgelegt 
sind.

> Was könnte man hier machen?

Erst mal Assembler lernen. Es macht wenig Sinn ohne Hintergrundwissen an 
die Adaptierung eines Assemblerprogramms an eine andere Zielhardware 
heranzugehen. Die Controller sind zwar an und für sich kompatibel, aber 
so kompatible dann auch wieder nicht, dass nicht kleinere Änderungen 
notwendig sind.
Generell muss man bei solchen Sachen immer wissen was man tut.

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.