PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten vom PC zum Atmel senden. Wie nutzen???



Bammel
20.03.2007, 16:12
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

Jon
20.03.2007, 16:43
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

Bammel
20.03.2007, 17:49
danke für die schnelle antwort.
es funktioniert aber leider immernoch nicht... mein programm sieht folgendermasen aus (garantiert nicht richtig :-# )



$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...

Jon
20.03.2007, 18:27
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

Bammel
20.03.2007, 18:33
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...

Bammel
20.03.2007, 22:54
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

Vitis
21.03.2007, 13:12
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))

Bammel
21.03.2007, 16:01
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

Bammel
21.03.2007, 19:58
DANKE DANKE DANKE
es funzt *totfreu* auch danke für den tip mit dem vb... ohne den hätte es nicht gefunzt ^^