- Labornetzteil AliExpress         
Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte
Ergebnis 41 bis 50 von 54

Thema: Ansteuerung von Funkmodul RFM12

  1. #41
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Anzeige

    E-Bike
    LOW
    dann die 2 bytes durchjagen
    dann wieder HIGH
    Das sollte die richtige Variante sein.

  2. #42
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    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:

    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
    mit den werten gehts dann ab in diese funktion:

    Code:
    void register_setzen_an_rfm12(int wert)
    {
    	PORTB &= ~(1<<SS);
    	senden_mit_rfm12(wert);
    	PORTB |= (1<<SS);
    }
    dann weiter hier hinein


    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);
    }
    so und in der funktion "senden_mit_rfm12(int wert)" bleibt der AVR stehen und zwar genau in an dieser stelle:
    Code:
    while(!(PIND & (1<<nIRQ)))
    	{
    
    	}
    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?
    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

  3. #43
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    EDIT entschuldigt sich für den doppelpost

  4. #44
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    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

  5. #45
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    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

  6. #46
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    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.

  7. #47
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    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

  8. #48
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    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
    Angehängte Dateien Angehängte Dateien

  9. #49
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    Jetzt ist die Datei auf der 1. Seite plötzlich wieder da???!!! Das verstehe ich nicht.

  10. #50
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    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

Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress