Hi!
Ich glaub nicht, daß die Dinger irgendwie fühlbar warm werden sollten...
Mehr fällt mir dazu leider nicht ein
MfG
Niels
Hi!
Ich glaub nicht, daß die Dinger irgendwie fühlbar warm werden sollten...
Mehr fällt mir dazu leider nicht ein
MfG
Niels
Hi,
ich habe zwei von den Funkmodulen in Betrieb, bei mir werden sie glaub ich nicht warm. Dein Code sieht eig ganz ok aus aber könntest du vlt noch mal den genauen Schaltplan posten mit dem du das Modul angeschlossen hast? Ich hab das Modul bisher immer über eine Software SPI am laufen gehabt, das ist nicht komplizierter als die Hardware SPI, man muss lediglich die rf12_trans Routine ändern.
Das hat jetzt vlt nicht mit der Lösung des Problems zu tun aber gewöhn dir an die {} auch bei einzeilern zu machen besonders deine rf12_rxbyte und rf12_txbyte sind sehr unübersichtlich
Im Anhang ein zip File mit meinem Sourcecode und einem Eagle FIle wie ich das Modul angeschlossen hab.
Viele Grüße
Tiny ASURO Library: Thread und sf.net Seite
Danke für die Antworten
Ich habe mir jetzt die 5 Volt Module geholt und habe noch mal eine Frage und zwar zum SPI:
Fast alle Quellen sagen, dass man das RFM12 wie folgt verbinden soll:
nSEL an SS
SCK an SCK
SDI an MOSI
SDO an MISO
Doch wenn ich gar keine Hardware SPI benutzen will, kann ich ja auch andere IOs benutzen.
Wenn Ich aber die Hardware SPI pins benutze, kann ich dann das RFM12 trotzdem per Software SPI steuern oder lassen sich die Pins (MOSI,MISO,SS,SCK) dann nicht mehr als normale IOs ansteuern?
Es gibt ja eine Option in den Fuses die SPI zu disablen, aber da ich per ISP programmiere funktioniert das nicht.
Nichts existiert durch sich allein!
Bild hier
Finger weg davon! Das ist für die Programmierung über ISP und hat nichts mit SPI im normalen Betrieb zu tun!
Ich wüsste nicht, warum du das tun wolltest (HW-SPI nimmt dir viel Arbeit ab), aber möglich ist das, ja. In dem Falle hast du eine freie Wahl der Anschlüsse am AVR.
Wie bereits erwähnt, wenn du SW-SPI machst, bist du nicht an die HW-SPI-Pins gebunden. Es wäre aber Unsinnig, das RFM12 an die HW-SPI-Pins anzuschließen und dann damit SW-SPI zu machen. Aber: Solange du das HW-SPI nicht einschaltest, sind die entsprechenden Pins ganz normale I/O-Pins und können daher nach belieben verwendet werden.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Danke für die schnelle Antwort.
Ich weiß jetzt also, dass ich die HW SPI Pins wie ganz normale IOs benutzen kann. Aber wie aktiviere oder deaktiviere ich denn die HW SPI?
Bzw. welches Register ist dafür zuständig?
Nichts existiert durch sich allein!
Bild hier
Hi,
wie du die HW SPI aktivierst, bzw deakivierst steht im Datenblatt. Ab Seite 132 geht es allgemein mit der SPI los, ab Seite 136 beginnt die "Register Description".
Zum aktivieren benutzt man das SPCR Register (S. 136) hier sind erklärt was die einzelnen Bits machen. Wir wollen die SPI im "Master Mode" (MSTR) betreiben und sie aktivieren (SPE). Eventuell musst du noch die SPI Clock Rate anpassen und die entsprechenden Pins müssen auf Ausgan bzw Eingang gestzt werden.
Als nächstes muss eine Routine zum Senden und Empfangen geschrieben werden. Dazu muss als erstes CHip Select aktiviert werden, danach werden die Daten in das Datenregister SPDR (S. 138 ) geschrieben. Die SPI beginnt sofort mit dem Übertragen, man muss lediglich darauf warten, dass die Schnittstelle fertig wird. Das kann man in dem SPSR (S. 138 ) Register feststellen mit dem SPIF Bit.Code:DDRB |= (1<<PB7) | (1<<PB5) | (1<<PB4); PORTB |= (1<<PB4); SPCR = (1<<SPE) | (1<<MSTR);
Hoffe das war verstädnlich viele GrüßeCode:PORTB &=~ (1<<PB4) //Chip select auf low SPDR = data; while(!(SPSR & (1<<SPIF)); PORTB |= (1<<PB4); return SPDR;
KR-500
Lesezeichen