Hi, da dies mein erster Beitrag ist gibts erstmal ein par Eckdaten:
Seit einigen Tagen beschäftige ich mich nun mit Mikrocontrollern,
speziell den AVRs. Diese Seite kenne ich schon länger, nur hat bisher
die Ambition/Zeit gefehlt mich mit diesem interessanten Thema zu
befassen.
Nun hab ich etwas Urlaub und habe mir (leider nur) einen Mega88,
Kleinkram, Breadboard und einen ISP MKII zugelegt. Flux aufgebaut und
los gings mit dem Assembler Tutorial.
nun bin ich beim Kapitel UART und konnte den Mega nicht mehr mit dem
internen Oszillator betreiben. Daher habe ich einen 8Mhz Quarzoszillator
mit angeschlossen und wollte die Fuses setzen, leider hab ich das wohl
falsch gemacht, der Controller will nicht mehr.
Vor längerer Zeit hatte ich mir schon einen Arduino UNO zugelegt, fand
die IDE aber nicht schön. Mir ging es jetzt darum den Mega328P auf dem
duino zu verwenden, der hat ja schon alles dabei, nun zu meinem Problem:
Ich habe den Beispielcode an den 328P angepasst, AVR-Studio meldet aber
beim builden folgende Fehler, ich steig da einfach nicht durch,
vielleicht kann mir da jemand auf die Sprünge helfen?
Hi
>Error 3 Operand 1 out of range: 0xc4
0xC4 ist die Registeradresse von UBRR0L. IN/OUT können aber nur Register
mit Adressen <0x40 adressieren. Für >=0x40 musst du STS/LDS verwenden.
Im Datenblatt findest du die Registeradressen unter 'Register Summary'.
MfG Spess
Domi Ryan schrieb:> Warning 1 Register r26 already defined by the .DEF directive> Warning 2 Register r27 already defined by the .DEF directive
Das ist der X-Pointer, der schon durch die originalen Defines vorgegeben
ist. Wenn Du den mit eigenen globale Variablen definierst, gibt es daher
eine Warnung und Du kannst in Deinem Programm nicht mehr XL und XH
benutzen. Selbiges gilt für Y- und Z-Pointer.