-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Atmega8 soll auf Zeichen reagieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.08.2007
    Ort
    Frankfurt/Oder
    Alter
    36
    Beiträge
    40

    Atmega8 soll auf Zeichen reagieren

    Anzeige

    Hallo zusammen

    Ich hoff euch geht es gut??

    Ich grübel mal wieder über ein kleines Problem nach.

    Ich möchte gern das mein ATMega8 auf bestimmte Zeichen reagieren soll.
    Z.B. Wenn eine 1 gesendet wird, dann mache z.b das und das.

    ich habe bis jetzt immernur die Befehle Read und Input gefunden.
    Aber beides hilft mir irgendwie nicht weiter.

    Habt ihr da eine Idee.




    MFG



    P.S. bin immernoch Anfänger

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Wie willst du dem µC die Zeichen schicken, auf die er reagieren soll?

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Ort
    Bayern
    Alter
    30
    Beiträge
    313
    Blog-Einträge
    1
    Prinzipiell reicht dir doch da auch input?

    Per selbigem den seriellen Port abfragen und mit einer select-case schleife das empfangene Zeichen auswerten.

    Oder hab ich das falsch verstanden und du willst garnicht die uart-verbindung verwenden?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    05.08.2007
    Ort
    Frankfurt/Oder
    Alter
    36
    Beiträge
    40
    Hallo

    Doch. Das Zeichen/Signal nennen wir es mal soll vom Rechner geschickt werden.

    Ich hatte hier schon nen Codeschnipsel gefunden. Aber so richtig zufrieden
    bin ich damit nicht denn Es muss da immer ne Kette von einer bestimmten Längfe gesendet werden. Und das passt mir überhaupt net. Es soll dann z.b. so sein. wenn Zeichen A dann mache das und das und so weiter. is ja nur nen beispiel.

    HIer mal der Codeschnipsel

    Code:
      $regfile = "m8def.dat"
     $crystal = 7372800
     $baud = 9600
    
    
     Dim S As String * 10
     Dim B(11) As Byte At S Overlay
     Dim N As Byte
    
     On Urxc Onrxd
     Enable Urxc
     Enable Interrupts
    
    
    
    Main:
    
       If N > 9 Then
             Print S
             N = 0
             End If
    
       Goto Main
    
    
    
    
    Onrxd:
    Incr N
     B(n) = Udr
    Return


    Und so ganz steigt ich dabei noch net hinter. Was z.b. das Onrxd macht.


    mfg

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Wenn du bei dem Code bleiben willst, dann schreib halt einfach
    If N > 0 Then
    ...

    Dann macht er was bei jedem Zeichen, das reinkommt.

    Gruß

    Rolf

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    05.08.2007
    Ort
    Frankfurt/Oder
    Alter
    36
    Beiträge
    40
    er soll ja z.b. bei 1 soll er das machen bei 2 das oder bei xy das sowas meine ich. das er je nachdem welches signal oder zeichen kommt soll er was bestimmtes machen

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Code:
     $regfile = "m8def.dat"
     $crystal = 7372800
     $baud = 9600
    
     $hwstack = 40   ' Stack für Gosubs...
     $swstack = 40
    
    
     Dim S As String * 10
     Dim B(11) As Byte At S Overlay
     Dim N As Byte
     config portx = output
    
    
    Do
    
       n = inkey
       If N > 0 Then
          gosub empfangen
       End If
    
    Loop
    end
    
    empfangen:
    
          select case n
                 case 49
                      reset portx ' port x komplett abschalten, wenn eine 0 empfangen wurde.
                 case 49
                      set portx.y 'portx.y stzen, wenn eine 1 empfangen wurde
                 case 50
                      set portx.y 'portx.y setzen, wenn eine 2 empfangen wurde
          end select
          print n
    return
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  8. #8
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    38
    Beiträge
    642
    Hallo,
    ich glaube das folgende Wiki hilft die weiter:
    http://www.roboternetz.de/wissen/ind...rn_des_AVR%27s
    Ich arbeite übrigens auch immer nach diesem Grudprinzip wenn ich mit einer
    Windows Anwendung einen Controller steuern will. Sharp develop ist auch gut geeignet und einfach zu erlernen.

    Für alle die keine Lust haben das Wiki zu lesen A=InKEY (),
    wobei "A" oder eine andere Variable zunächst entsprechend als DIM A as BYTE oder Integer etc deklariert werden muss.
    Ich hoffe ich konnte weiterhelfen.

    MfG

    Neutro
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    @peterfido: 2x case 49 -< ist das Absicht?

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Zitat Zitat von MDKMurdoc
    ... Es muss da immer ne Kette von einer bestimmten Längfe gesendet werden ... soll ... so sein. wenn Zeichen A dann mache das und das und so weiter ...
    Ich habe so etwas auf (m)einem µC laufen, Programmiersprache (für Dich: leider) ist C.

    Dabei prüfe ich in der Interruptroutine, die beim Empfang eines Zeichens aufgerufen wird, welches Zeichen angekommen ist. Wird in einem beliebigen Strom von Zeichen ein (vorher bestimmbares) Zeichen entdeckt (z.B. Paragraph §), dann werden die folgenden Zeichen in einem speziellen String mit max. 10 Zeichen Länge abgelegt (wenn das entsprechende Flag nicht gesetzt ist). Wenn der String gefüllt ist, wird ein Flag gesetzt. Dieser String wird im main oder entsprechenden Routinen ausgewertet und das Flag zurückgesetzt. So kann ich Ziffern oder kurze Strings im Controller auswerten und entsprechend reagieren. Vielleicht geht so etwas auch in Basic?
    Ciao sagt der JoeamBerg

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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