Hallo,
Bin leider noch blutiger Anfänger im programmieren von uC.
(Bin vor 2 Wochen angefangen mit dem assembler Programmieren, sitze aber
teilweise Nachmittags 6-8 Stunden vor mein mC und versuche assembler zu
verstehen, was auch eigentlich ganz gut klappt)
also ich bin momentan voll im rausch zu lernen wie man uC programmiert
und wie man sie benutzt.
Habe das einsteiger set von Myavr. Dort geht es im aktuellen Kapitel um
das Senden über den Com Port.
Das assembler Programm funktioniert so weit. Also der uC sendet das wort
"Hallo " per knopfdruck über das UART Datenregister. Dieses kann ich auch mit der
beigefügten Software myAVR Controlcenter Build 698 am Pc empfangen.
Hier mal das mC Programm
Code:[ ;+----------------------------------------------------------------------------- ;| Title : Assembler Grundgerüst für ATmega8 ;+----------------------------------------------------------------------------- ;| Funktion : ... ;| Schaltung : ... ;+----------------------------------------------------------------------------- ;| Prozessor : ATmega8 ;| Takt : 3,6864 MHz ;| Sprache : Assembler ;| Datum : ... ;| Version : ... ;| Autor : ... ;+----------------------------------------------------------------------------- .include "AVR.H" ;------------------------------------------------------------------------------ begin: rjmp main ; RESET External Pin, Power-on Reset, Brown-out Reset and Watchdog Reset reti ; INT0 External Interrupt Request 0 reti ; INT1 External Interrupt Request 1 reti ; TIMER2 COMP Timer/Counter2 Compare Match reti ; TIMER2 OVF Timer/Counter2 Overflow reti ; TIMER1 CAPT Timer/Counter1 Capture Event reti ; TIMER1 COMPA Timer/Counter1 Compare Match A reti ; TIMER1 COMPB Timer/Counter1 Compare Match B reti ; TIMER1 OVF Timer/Counter1 Overflow reti ; TIMER0 OVF Timer/Counter0 Overflow reti ; SPI, STC Serial Transfer Complete reti ; USART, RXC USART, Rx Complete reti ; USART, UDRE USART Data Register Empty reti ; USART, TXC USART, Tx Complete reti ; ADC ADC Conversion Complete reti ; EE_RDY EEPROM Ready reti ; ANA_COMP Analog Comparator reti ; TWI 2-wire Serial Interface reti ; SPM_RDY Store Program Memory Ready ;------------------------------------------------------------------------------ main: ldi r16,hi8(RAMEND) ; Main program start out SPH,r16 ; Set Stack Pointer to top of RAM ldi r16,lo8(RAMEND) out SPL,r16 sbi UCSRB,3 ldi r16, 23 out UBRRL,r16 cbi DDRD,2 sbi PORTD,2 ;------------------------------------------------------------------------------ mainloop: wdr sbis PIND,2 rjmp Taster1 rjmp mainloop ;------------------------------------------------------------------------------ Taster1: ldi r16,'H' rcall putChar ldi r16,'a' rcall putChar ldi r16,'l' rcall putChar ldi r16,'l' rcall putChar ldi r16,'o' rcall putChar ldi r16,' ' rcall putChar ret putChar: sbis UCSRA,5 rjmp putChar out UDR,r16 ret
Jetzt möchte ich allerdings dieses über mein C# Programm Empfangen.
Dort weiß ich aber noch nicht wie ich dieses realisieren kann.
Das Wort "Hallo" (bzw er wiederholt das ein paar mal, da der tastendruck zu lang ist...)soll einfach nur zusammengesetzt, und in einer TextBox
ausgegeben werden sobald ich den button1 drücke.
Der Port an dem mein uC sitzt ist der Com Port 3.
Hier mein aktuelles C# Programm (in C# kenne ich mich eingentlich gut
aus)
Es wäre nett wenn mir einer das Programm zu ende programmieren würde.Code:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApplication1 { public partial class Form1 : Form { SerialPort port = new SerialPort("COM3",9600,Parity.None,8,StopBits.One); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { textBox1.Text = "???"; } } }
Vielleicht erkenne ich die funktionsweise so. Ansonsten würde ich noch
1-2 fragen stellen
mfg André







Zitieren

Lesezeichen