Das sollte die richtige Variante sein.Zitat:
LOW
dann die 2 bytes durchjagen
dann wieder HIGH
Druckbare Version
Das sollte die richtige Variante sein.Zitat:
LOW
dann die 2 bytes durchjagen
dann wieder HIGH
hi zusammen
ich hab nun die stelle gefunden wo mein ATmega16 stehen bleibt:
nach der init für die rs232 und dem lcd-display sollte er eigendlich den rfm12 inititalisieren.
er ruft die funktion auf in der folgende einstellungen gemacht werden sollen:
mit den werten gehts dann ab in diese funktion:Code:register_setzen_an_rfm12(0x80D7); //433Mhz
register_setzen_an_rfm12(0x82B9); //enable transmitter enable synthesizer enable crystal oszilator disable CLK-PIN
register_setzen_an_rfm12(0xA4B0); //433Mhz
register_setzen_an_rfm12(0xC6BD); //9600Baud
dann weiter hier hineinCode:void register_setzen_an_rfm12(int wert)
{
PORTB &= ~(1<<SS);
senden_mit_rfm12(wert);
PORTB |= (1<<SS);
}
so und in der funktion "senden_mit_rfm12(int wert)" bleibt der avr stehen und zwar genau in an dieser stelle:Code:void senden_mit_rfm12(int wert)
{
cursor_auf_startpos();
text_schreiben("teilen rfm12");
PORTC |= (1<<PC3);
int werte_array[16];
int pruefung = wert;
int i = 0;
for(i = 0; i<=15; i=i+1)
{
pruefung=pruefung - pow(2,i);
if (pruefung >=0)
{
werte_array[i]=1;
}
else
{
pruefung=pruefung + pow(2,i);
werte_array[i]=0;
}
}
cursor_auf_startpos();
text_schreiben("sending rfm12");
while(!(PIND & (1<<nIRQ)))
{
}
int j = 0;
for(j = 0; j<=15; j=j+1)
{
if(werte_array[j] == 1);
{
PORTB |= (1<<MOSI);
}
if(werte_array[j] == 0);
{
PORTB &= ~(1<<MOSI);
}
PORTB |= (1<<SCK);
_delay_ms(1);
PORTB &= ~(1<<SCK);
}
PORTC &= ~(1<<PC3);
}
kann es sein das der nIRQ verkehrt herum gepolt ist sprich das er wenn er was empfängt auf LOW springt und wenn der rfm12 sendebereit ist dann ist er auf HIGH?Code:while(!(PIND & (1<<nIRQ)))
{
}
jedenfalls is bei mir der nIRQ dauerhaft auf 1 weshalb die schleife sich nicht beendet
jemand ne idee? die schleife is ja da drin um zu verhindern das wärend ich empfange gesendet wird bzw andersrum
grüße
EDIT entschuldigt sich für den doppelpost
Stimmt, so müsste es gehen:
while(PIND & (1<<nIRQ))
Kann mir jemand sagen, wie ich das RFM12 an einen AtTiny26 anschliesen muss (der hat ja keinen SS Ausgang).
mfg
den muss er haben wenn er eine spi schnittstelle hat (gehört dazu)
beim programmieren des IC's wird der ss auf HIGH gesetzt damit solange alle anderen module ausgeschaltet sind (is bestandteile des bussystems welches durch die SPIschnittstelle aufgebaut werden kann)
ansonsten isses aber auch nicht so schlimm du kannste irgenwelche pins nehmen statt SS MISO MOSI bzw. CLK zum ansprechen des rfm12 da sowieso jede pinbelegung expleziet gesetzt wird und keine automatische SPIeigenschaft benutzt wird.
frage: schreibst du die init/transmit/reciev funktion selbst und in c mit nem GCC? wäre super wenn du mit die funktionen mal zeigen kannst dann.
meine funktionieren immernoch nicht und ich weiß nicht warum.
grüße
Schau doch mal auf der 1. Seite 5. Beitrag von mir. Dort hab ich die Header-Datei RFM12.h hochgeladen. Diese Datei hab ich irgendwo im Internet gefunden und etwas verändert. Ich verwende die Funktionen von ihr zum senden (und empfangen) von Daten. Aber da mein Programm gerade noch nicht fertig ist, weiß ich nicht, ob alle Funktionen so funktionieren, wie sie es sollten.
kannste wenn dein prog fertig is das trotzdem vllt hier reinstellen weil das auf seite1 hab ich irgendwie nicht verstanden bzw kann ich damit nix anfangen weil die funktionen die dort aufgerufen werden mir ja fehlen und genau die bräuchte ich um zu sehen was ich falsch gemacht hab
Kein Wunder, dass dir die Funktionen fehlen, ich hatte diesem Beitrag eigentlich eine Datei angefügt, aber die ist jetzt wohl verschwunden. :?
Egal, hier ist die Datei:
mfg
Jetzt ist die Datei auf der 1. Seite plötzlich wieder da???!!! Das verstehe ich nicht. :? :? :?
hi
wo issen die datei angefügt??? ich seh keinen link keinen button für anlage oder so
??? wusste auch garnich das man hier im forum sowas machen kann
EDIT sagt: oh ok habs
aber die header datei bringt mir auch nix
ich meinte eigendlich die .c datei