-         

Ergebnis 1 bis 9 von 9

Thema: Daten vom PC zum Atmel senden. Wie nutzen???

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400

    Daten vom PC zum Atmel senden. Wie nutzen???

    Anzeige

    Hallo,
    ich hab folgendes problem ich will über ein Programm (selbst geschreiben) daten für die pwm im atmel nutzen. d.h. ich sende vom programm die "255" unn der atmel soll es so umsetzten das die led aus ist dann möchte ich einen anderen wert zwischen 0 und 255 senden und die led soll sich halt dem anpassen! nur wie programmiere ich das?

    ich bin blutiger anfänger und bin jetzt schon nen paar stunden am tüfteln aber bekomme das nicht hin...

    MfG Bammel

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Willst du wissen, wie du das Programm für den PC oder für den ATMega machen musst?

    Für den PC wüsste ich es nicht. Aber beim ATMega könnte ich dir weiterhelfen:
    Du musst eine Variable bestimmen.
    Z.B. "PWM_Eingang". Diese solle ein Byte sein.
    Nun fragst du mit dem Befehl "Input" ab, was am RX Pin kommt und schreibst den Inhalt in die Variable.
    Danach musst du anstatt dem Wert die Variable "PWM_Eingang" eintragen und schon stellt sich die LED so, wie du es willst.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    danke für die schnelle antwort.
    es funktioniert aber leider immernoch nicht... mein programm sieht folgendermasen aus (garantiert nicht richtig )

    Code:
    $regfile = "m16def.dat"
    
    $crystal = 16000000
    $baud = 9600
    
    Dim Pwm_eingang As Byte
    
    Ddrd = &B11111000
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
    Compare1a = 255
    
    
    Do
    
     Input "" , Pwm_eingang
     Compare1a = Pwm_eingang
    
    Loop
    
    End
    vom pc aus sende ich nur wie aus nen terminal programm (erstmal als test) einmal den wert 255 für aus udn einmal den wert 0 für an. aber jezz funtioniert nix...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Schau mal in der Bascom-Hilfe unter "Input". Ich glaube, dass du diesen Befehl nicht ganz richtig verwendest (ich glaube es aber nur).
    Funktioniert die Verbindung PC<-->ATMega? Sende mal einen einfachen Text an den PC, um dies zu testen.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    die komunikation funzt einwandfrei hatte das pc programm auch schon dazugebracht die led an udn aus zu machen aber das waren nur einfache buchstaben die ich versendet hab udn dnan über if abfragen ausgelesen aber nun will ich das mit den 0 - 255 machen um die led auch per pc dimmen zu können...

    die Bascom hilfe hab ich schon anchgeschaut opeil die baer net so richtig das gibbes tausende von möglichkeinetnm da weiß ich doch nicht was ich nu7tzen soll udn und und... naja ich mus nun erstmal weg werde mich wohl nachher nochmal ransetzten...

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    also es funzt so doch aber nicht so wie ich es gerne haben möchte... so fragt er mich im hyperterminal immer nach nen wert den ich eingeben muss und dann "enter" drücken muss um den wert abzusenden.. ich möchte aber das der atmel solange wartet bis er einen neuen wert geschickt bekommt und diesen dann umsetzt und dann gleich wieder auf den neuen wert wartet... und so weiter und so fort..

    spricht nicht das er umbedingt einen verlangt... er soll halt warten udn sobald eine z.b. 134 ankommt das in den compare1a wert nehmen so das er die led leuchten lässt

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    sowas kann man wunderbar in Interrupt lösen.

    man nehme den On URXC Interrupt, der einen Bytewert setzt

    Tempbyte=UDR (UDR ist das UART Empfangs/ Senderegister)

    und in der Mainloop ist dann nurnoch

    PWM1A = Tempbyte

    und schon geht bei jedem Byte, das über die UART rein kommt die PWM
    auf den gewünschten Wert.
    An Stelle des Twerminals kann man sich unter VBasic ne kleine Anwendung
    mit nem Slider zusammenklicken, die dann alle paar Milisekunden
    den Sliderwert über RS232 also Com1 oder Com2 an den µC schickt.
    Wertübertragung währe dann einfach als CHR also ASCII-Code (0 bis 255)
    des Sliderwertes.

    PS: ich vermute du sendest übers Terminal "123<ENTER>"
    Das funktioniert so nicht. mit dem Übernehmen direkt in die
    PWM.
    Weil Du eben ne Zeichenfolge schickst eben 1, 2, 3, <CR>, <LF>
    also einen Stringwert.
    Was Du aber brauchst ist ein Byte- oder Word-Wert (bei Timer1 Word, wenn ich mich recht erinnere (16-Bit))
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    das proggy hab ich in der tat mit vb geschrieben.. wollte dann auchnoch nen slider einbauen.. naja ich probier das nachher oder so mal...

    gruß bammel

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    DANKE DANKE DANKE
    es funzt *totfreu* auch danke für den tip mit dem vb... ohne den hätte es nicht gefunzt ^^

Berechtigungen

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