www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RFM01 / RFM02 und bascom


Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

der Krampf geht weiter. ich habe mal versucht die Software in Bascom für 
ein Rfm01 und Rfm02 mit Mega8 zu schreiben. Funktioniert aber leider 
nicht. Momentan teste ich den Rfm02 (Sender). Mit meiner 
selbstgeschriebenen Routine kann ich über SPI z.B. die Frequenz am Clk 
in verschiedene Werte ändern. Aber das Senden will nicht. Hier mein 
Code:
vorallem die Bascom-Experten können mir vielleicht Tipps geben.

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600


Declare Sub My_trans2(byval Mylowbyte2 As Word)
Declare Sub Rf02_shiftout(byval Senddata As Byte)
Declare Sub My_spi(byval Mylowbyte As Byte)


Ddrc = &B11111000
Ddrd = &B00101111
Ddrb = &B11111110
Spi_cs Alias Portb.2                                        ' SS-Pin
Spi_sdi Alias Portb.3
Spi_sdo Alias Pinb.4


Dim Temp As Word
Dim Temp_byte As Byte
Dim A(8) As Byte
Dim L As Byte
Dim Test As Byte
Dim Lauf As Byte


 Set Spi_cs

 Waitms 150

  Call My_trans2(&Hc0e0)
  Call My_trans2(&H8f80)
  Call My_trans2(&Hc2a0)
  Call My_trans2(&Ha620)                                    '433,92 MHz 
Freq Setting
  Call My_trans2(&Hb400)                                    '  &Hb420
  Call My_trans2(&H8f80)                                    ' 10 Mhz
  Call My_trans2(&Hd2c0)
  Call My_trans2(&Hc823)                                    'c823 =9600 
c811 =19200
  Call My_trans2(&Hc038)
  'Call My_trans2(&H8a80)                                    ' 1,8A80 
6666 Mhz
  Call My_trans2(&H8f80)

Portc.3 = 0
Test = &HCC
   Portb.3 = 0

Do


Call My_spi(&Hc6)

 'Call My_trans2(&H8a80)
Loop


End

Sub My_trans2(byval Mylowbyte2 As Word)
    Local I As Byte
    'Local Mylowbyte2 As Word


    Reset Spi_cs
 '   While Pinb.0 = 0

    For I = 15 To 0 Step -1
        If Mylowbyte2.i = 1 Then
                                Portb.3 = 1
                                 Else
                                Portb.3 = 0

                            End If
            Portb.5 = 1
                      'SCK
            Waitus 1
            Portb.5 = 0

    Next I



    Waitus 40

    Set Spi_cs

End Sub



Sub My_spi(byval Mylowbyte As Byte)
    Local I As Byte

    Reset Spi_cs

    For I = 7 To 0 Step -1

        If Mylowbyte.i = 1 Then
                                Portb.3 = 1                 'sdi High
                                Else
                                Portb.3 = 0                 'sdi low

                            End If
            Portb.5 = 1
                      'SCK   nächsten Takt erzeugen
            Waitus 1
         '  $asm
         '     nop
         '     nop
         '     nop
         '  $end Asm

            Portb.5 = 0

    Next I
             'sck low
      'Portb.5 = 0
    Waitus 40


    Call Rf02_shiftout(&Haa)
    Call Rf02_shiftout(&Haa)
    Call Rf02_shiftout(&Haa)
    Call Rf02_shiftout(&H2d)
    Call Rf02_shiftout(&Hd4)

    Call Rf02_shiftout(&H41)                                'paar daten
    Call Rf02_shiftout(&H42)
    Call Rf02_shiftout(&H43)
    Call Rf02_shiftout(&H44)
    Call Rf02_shiftout(&H45)
    Call Rf02_shiftout(&H46)
    Call Rf02_shiftout(&H41)                                'paar daten

      Set Spi_cs

    While Pinb.0 = 1
    Wend


    Call My_trans2(&Hc464)


  End Sub

Sub Rf02_shiftout(byval Senddata As Byte)
 Local J As Byte

 Portc.3 = 1



 For J = 7 To 0 Step -1


          While Pinb.0 = 1
          Wend
          While Pinb.0 = 0
          Wend

            If Senddata.j = 1 Then
                                Portb.3 = 1

           '
                                Else
                                Portb.3 = 0
           '
                          End If

 Next J

End Sub

Autor: Nixda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pollin Funkmodule Bascom - Code soll funktionieren !!
da sollteste fündig werden.
da gibts 3 versionen .

http://bascom-forum.de/index.php/topic,25.msg45.html#msg45

Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Nixda

immer die schei... Werbung für dises Forum

Autor: HUHU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Steve Bennet wieso werbung mir hats geholfen.

Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@huhu (nixda)

kann dir nicht geholfen haben, weil Rfm12 und Rfm01/Rfm02 nicht das 
gleiche ist und der RFM02 anders zu händeln ist

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.