Hallo, Bräuchte dringend Hilfe. Hab mir eine Sorce runter geladen bei http://members.chello.cz/cesko/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_eng.htm . 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?
.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
Warum heisst das hier wohl Codesammlung? Trotzdem: "comment for Mega88" soll wohl einen Anleitung für irgendwas sein. Oliver
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
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.
nochwas: Und wenn da vorher Dezimalwerte standen, wieso machst Du dann Hexadezimalwerte draus?!?
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!
@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
@ sigint Den habe ich aufgebaut funktioniert aber ich kann den adc-wandler nicht nutzen den ich brauche um spannungsmessung zu betreiben!
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.
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?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.