Hallo Leute....
Ich komm mir langsam blöd vor...
Ich habe folgendes Programm. es soll einfach ein Byte am Spi ausgeben
(in einer Schleife). Aber irgendwie klappt es nicht. mit dem Oszi sehe
ich nur ne sinuswelle an mosi miso sck an ss ist high pegel
Helft mir bitte...
Ohne jetzt im Datenblatt nachgesehen zu haben, mit welcher Frequenz
läuft den dein SPI? Kann es sein, dass wenn du den SPI mit ein paar
Megaherz feuern lässt und dann mit dem ganz normalen Messkopf vom Oszi
misst (also nicht x10) "Sinüsser" siehst?
mfg noobuntu
DANKEEEEEE.............
Es sieht jetzt so aus. UND GEHT....
Sorry für die "bescheuerte Frage". Ich bin ja nicht grad unerfahren in
avr-Sachen. aber ich habs nicht hinbekommen.....
1
.include <m16def.inc>
2
.cseg
3
.org 0
4
start:
5
ldi r16, low(RAMEND)
6
ldi r17, high(RAMEND)
7
out SPL, r16
8
out SPH, r17
9
10
ldi r16, (1<<7) | (1<<5) | (1<<4)
11
out DDRB, r16
12
ldi r16, (1<<MSTR) | (1<<SPE)
13
out spcr, r16
14
15
s:
16
ldi r16, 0b01010011
17
out SPDR, r16
18
s1:
19
sbis SPSR, SPIF
20
rjmp s1
21
in r16, SPDR
22
23
nop
24
rjmp s
Also Danke.
P.S. Ich nehm an, dass der avr an ss einfach ne schwingung bekommen hat
und dann in den slave modus gewechselt hat...
>P.S. Ich nehm an, dass der avr an ss einfach ne schwingung bekommen hat>und dann in den slave modus gewechselt hat...
So ist es. SS darf nicht floaten wenn es ein Eingang ist.
Als Eingang ist er im Master Mode sowieso nicht nutzbar.
Also immer schön auf Ausgang schalten.