- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 10

Thema: Senden und empfangen über mega128funk

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51

    Senden und empfangen über mega128funk

    Anzeige

    Praxistest und DIY Projekte
    Hallo!
    Ich möchte ein kleines Programm schreiben, wo der 128funk Daten über Funk sendet und empfängt.
    Zum Beispiel habe ich 2 PC's, die über RS232 mit 128funk verbunden sind, und damit soll eine Kommunikation über Funk aufgebaut werden. Was der eine eingibt, soll der andere am PC zu sehen bekommen u.s.w.

    Da ich z.Zeit keine 128funk dabei habe, kann ich nicht testen. Ausserdem habe ich recht wenig Kenntnisse in Bascom-Programmierung.

    Würde es mit folgenden Code klappen?

    Code:
    Dim Receive As Word                                         ' Empfangen Daten
    Dim Send As Word                                            ' Daten zum Senden
    
    Rdy_hostempfangsbereit = 0
    
    Do
    
    Input "Eingabe:" , Send                                     'zu sendenden Text Eingeben
    Print Send                                                  'und senden
    
    Wait 2
    
    Receive = Inkey()                                           'empfangenen Text zuweisen
    If Receive <> 0 Then Print #2 "Empfangen:" ; Receive        'und ans RS232 ausgeben
        Loop
    
    
    End
    Die üblichen Anweisungen habe ich nicht zitiert...

    bis dann,
    Nico

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    17.03.2006
    Beiträge
    5
    Das Programm müste funktionieren, aber die 2 sec warten würde ich rauschmeißen und statdessen den Port buffern.
    Code:
    Config Serialin = Buffered , Size = 100                     'Empfangsbuffer für Funkmodul anlegen
    Mfg Mero

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51
    Ich werde heute die 128funk aus dem Büro abholen und dann mal testen...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51
    leider funktioniert es nicht...

    so sieht mein Programm aus:
    Code:
    ' ---------------RN-Mega128Funk übliche ----ANFANG--------------
    
    $regfile = "m128def.dat" ' Bei Mega 128 "
    $framesize = 40
    $swstack = 40
    $hwstack = 40
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 19200                                               'Baudrate für Funkmodul
    $baud1 = 9600                                               'Baudrate für MAX
    
    Config Ping.0 = Output                                      'Spannung an LCD aktivieren
    Lcdpower Alias Portg.0
    
    Config Pine.2 = Output
    Rdy_hostempfangsbereit Alias Porte.2                        'Auf Low setzen wenn Empfangsbereit für Daten vom Funkmodul
    
    Config Pine.5 = Input
    Bsy_funkmodulsendebereit Alias Porte.5                      'Ist Low wenn Funkmodul frei zum senden
    
    
    Open "com2:" For Binary As #2                               'Ausgabe über zweite serielle Schnittstelle (MAX)
    
    Sound Portg.2 , 400 , 450                                   'BEEP bei RN-Mega128Funk
    Sound Portg.2 , 400 , 250                                   'BEEP bei RN-Mega128Funk
    Sound Portg.2 , 400 , 450                                   'BEEP bei RN-Mega128Funk
    
    Config Serialin = Buffered , Size = 100                     'Empfangsbuffer für Funkmodul anlegen
    Config Serialout1 = Buffered , Size = 100                   'Ausgabebuffer für normalse RS232
    Enable Interrupts
    ' ---------------RN-Mega128Funk übliche ----ENDE--------------
    
    
    Dim Receive As Word                                         ' Empfangen Daten
    Dim Send As Word                                            ' Daten zum Senden
    
    Rdy_hostempfangsbereit = 0
    
    Do
    
    Input "Eingabe:" , Send                                     'zu sendenden Text Eingeben
    Print Send                                                  'und senden
    Print #2 "Bestätigt:" , Send
    
    Wait 2
    
    Receive = Inkey()                                           'empfangenen Text zuweisen
    If Receive <> 0 Then Print #2 "Empfangen:" , Receive        'und ans RS232 ausgeben
        Loop
    
    
    
    End
    hat jemand einen Vorschlag?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    17.03.2006
    Beiträge
    5
    Hmm wenn ich dein Programm jetzt richtig deute empfängst du immer nur ein Zeichen. die metode Inkey() holt immer nur ein Zeichen aus dem RS232 Buffer. Du musst eine Schleife zum Auslesen generieren.
    Der code müsste deinen Funkpuffer Komplett auslesen und in den String Dat Schmeißen.
    Hoffe das hilft dir weiter.
    Mfg Mero

    Code:
     
    Do                                                     
          Z = Inkey()
          If Z <> 0 Then Dat = Dat + Chr(z)
    Loop Until Z = 0

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51
    irgendwas stimmt da noch nicht. Ich kriege am PC nicht mal Anzeige für den Input...
    Und jetzt, wo ich es schreibe, überlege ich mir folgendes: von welcher Schnittstelle erwartet es Input? Wahrscheinlich über Funk.
    Müsste ich den Input #2 schreiben?

    bis dann

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    17.03.2006
    Beiträge
    5
    Hmm ups das hab ich dann wol übersehen.
    Ja sonst will er ja den input vom Com1 und da hängt das Funkmodul dran.
    Ansonsten müsste es klappen. Ansonsten muss der Fehler in der verbindung vom Board zum Rechner liegen.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51
    Nach einiger Zeit Pause bin ich wieder dran. Es klappt immer noch nicht. Normale Testprogramme laufen einwandfrei, also funktioniert sowohl die Funk-Seite als auch die RS232-Seite.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    17.03.2006
    Beiträge
    5
    Hmmm wenn du nur 2 Rechner Kommunizieren lassen willst kauf dir doch ein USB Modul das verwende ich um meinen Rechner mit dem Controler zu verbinden. Ansonsten kann ich dir auch noch mal beim Code Helfen. Hier nochmal en Beispiel was alles mit den Channels erklären sollte. Ansonsten hilft die Hilfe von Bascom auch weiter.
    Code:
    Do 
    Dat = inkey(#2)  'Byte vom Rechner auslesen
    print Dat ' Byte am Funkmodul Ausgenben
    Dat inkey() 'Byte vom Funkmodule auslesen
    print Dat ' Byte an Rechner ausgeben
    loop
    Mfg Mero

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    20.05.2004
    Ort
    Meppen
    Alter
    46
    Beiträge
    51
    Eigentlich wolte ich nur etwas machen, was das ganze für mich verständlich macht, bzw. die Funktinen erklärt. Aber ich bin scheinbar übers Ziel hinaus geschossen.
    Nehmen wir mal ein neues Beispiel an:
    Port A und Port B werden eigelesen, über Funk übertragen und am 2. Board am Port A und B ausgegeben. Das gleiche passiert mit Port C un D andersum. Also so eine Art Funk-IO-Interface, wo die Eingänge eines Boards auf die Ausgänge des 2. Boards übertragen werden und andersum.

Berechtigungen

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

Solar Speicher und Akkus Tests