hallo zusammen hab etwas code geschrieben für einen atmega8 in avr studio 4. beim assemblieren kam eine fehlermeldung: error: Overlap in .cseg: addr=0x9 conflicts with 0x9:0xa die fehlermeldung ist erst für (ldi uni1, low(ramend) wenn ich das auskomentiere kommt der fehler für die nächste zeile und so weiter. ich habe erst ein ok bekommen als ich alles nach unten auskomentiert hab. einen fehler hab ich nicht gefunden und durch meine frust werde ich auch so schnell keinen finden. darum bitte ich euch um hilfe. mein code bis jetzt: .include "m8def.inc" ;START----------------------------------------- .def uni1 = r16 .def uni2 = r17 .def seceiner = r18 .def seczehner = r19 .def ausgabeE = r20 .def ausgabeZ = r21 .def eingabe = r22 .def eingabealt = r23 .def status = r24 .def zaehler = r25 .org 0x000 rjmp start .org ovf0addr rjmp runter .org ovf1addr rjmp zeigen ;INITIALISIERUNGEN----------------------------- start: ;STACK: ldi uni1, low (ramend) out spl, uni1 ldi uni1, high (ramend) out sph, uni1 ;timer0: ldi uni1, (1<<cs02)|(1<<cs00) out tccr0, uni1 ;prescaler für timer0 1024 ;timer1: ldi uni1, (1<<cs22)|(1<<cs20) out tccr1b, uni1 ;prescaler für timer2 128 ldi uni1, (1<<toie2) out timsk, uni1 ;interrupt enabled ;I/O: ser uni1 out ddrb, uni1 ;portb ist output out ddrc, uni1 ;portc ist output clr uni1 out ddrd, uni1 ;portd ist input ser uni1 out portd, uni1 ;interne R aktiviert sei ;TASTENABFRAGE UND WARTESCHLEIFE--------------- ;ZIFFERN ANZEIGEN------------------------------ zeigen: runter:
mach mal ne komplette Interrupttabelle rein oder setz nen neuen .org
hallo ich nochmal ich hab mal was gefuttert und mich wieder rann remacht ;-) ich hab erst ovf1 mit ovf2 vertauscht da ich den timer 2 benutzen will, dann hab ich ovf0 und ovf2 vertauscht und nun geht das mit dem assemblieren! ich denke ich hab nur die interupt zeilen (wenn jemand weiß was ich meine) vertauscht. ich danke dir frank l. für die antwort. gruß und wenn es mal nicht klappt einfach mal was essen hegen hehe
Hallo, deshalb steht bei mir am Programmbeginn immer ein ;INITIALISIERUNGEN----------------------------- .org INT_VECTORS_SIZE start: ;STACK: ldi uni1, low (ramend) out spl, uni1 ldi uni1, high (ramend) out sph, uni1 INT_VECTORS_SIZE zeigt auf die Adresse hinter den Interrupt-Vectoren und ist in den AVR-Includes definiert. So spielt es keine Rolle, wieviel Vectoren in welcher Reihenfolge oben definiert werden. Gruß aus Berlin Michael
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.