hallo zusammen ne kleine frage ich arbeite mit einem Atmega88 ich habe jedesmal eine fehlermeldung beim assemble bei einer SPI routine "sbis SPSR, SPIF" die fehler meldung lautet "error: Operand 1 out of range: 0x2d"
sbic/sbis geht nur in den unteren 32 I/O-Registern, das weiß man doch sogar als BASCOMer.
Was sollte man den dann fur ein befehl benutzen? habe schon alles ausprobiert geht nix.... bin mit einem mega2561 beschäftigt.
Evgenij Grinjuk wrote: > Was sollte man den dann fur ein befehl benutzen? Mit einem Befehl geht das nicht. Da musste schon eine Kombination aus "in" und "sbrs"/"sbrc" verwenden. > habe schon alles ausprobiert geht nix.... Alles? Glaub ich nicht... > bin mit einem mega2561 beschäftigt. Schön.
Richtig ich habe jetzt acuh bisle combiniert und folgendes daraus gamacht Schiebe: out SPDR,r16 Schiebe1: ldi r18, SPSR sbrs r18, SPIF breq schiebe1 beim ersten senden springt er aus der schleife und macht weiter aber dann beim 2. bit senden springt er nicht mehr raus und ist in einer endlos schleife wisst ihr wocher es kommt? Und wie ist es eigentlich möglich dass wenn ich ISP als master initialisiere, der Compiler von AVR Studio4 beim nächsten befehl(auch wenn es nur ein "nop" ist) das Master bit entfernt... dadurch ist natürlich auch keine kommunikation mehr möglich. hier meine init equ SCHIEBE_DDR = DDRB .equ SCHIEBE_PORT = PORTB .equ RCK1 = DDB4 ; SS .equ RCK2 = DDB5 ; SS .equ SCK = DDB1 ; SCK .equ SIN = DDB2 ; MOSI .equ SOT = DDB3 ; MISO ; ; SCK, MOSI, SS als Ausgänge schalten ; in temp1,SCHIEBE_DDR ;habe 2 SS wegen meiner Hardware 2 Geräte ori temp1,(1<<SIN) | (1<<SCK) | (1<<RCK1)| (1<<RCK2) out SCHIEBE_DDR,temp1 ; ; SPI Modul konfigurieren ; ldi temp1, 0b01010010 out SPCR, temp1 ; keine Interrupts, MSB first, Master ; CPOL = 0, CPHA =0 habe es auch schon so versucht wie im datenblatt aber es will einfach nicht funktionieren. habt ihr schon erfahrungen damit gemacht?
> ldi r18, SPSR
Was soll das denn machen? Schau Dir bitte mal in der
Befehlsdokumentation an, was ldi macht!
ja hab ich schon gesehen ;-) mein fehler. habe es auch auf in r18, SPSR geändert. aber trotzdem macht der mikrocontroller das selbe. er will nicht aus der schleife springen. kann es daran liegen das dass master bit im SPCR register gelöscht wird? wenn ja wie kann ich es verhindern?
Der Grosse wrote: > Und wie ist es eigentlich möglich dass wenn ich ISP als master > initialisiere, der Compiler von AVR Studio4 beim nächsten befehl(auch > wenn es nur ein "nop" ist) das Master bit entfernt... dadurch ist > natürlich auch keine kommunikation mehr möglich. Beliebte Fallgrube: Der /SS-Pin muß als Ausgang gesetzt werden !!! Peter
Danke an alle... Läuft alles supi... werde mich bestimmt bald noch mal melden...;-)
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.