Forum: Mikrocontroller und Digitale Elektronik myAVR MK3 und Kommunikation mit PC


von Christoph H. (christoph_b)


Lesenswert?

Hallo

Kann ich den Atmega 2560 des MK3 Board über den PC steuern.
Würde gerne die Ports des Atmega mit dem PC steuern.

so wie hier.

http://www.youtube.com/watch?v=NuKXY_uE8Yk&feature=view_all&list=PLFFC58115F01DD123&index=13

MFG Christoph

von Hansi (Gast)


Lesenswert?

Hallo,

Ja Klar geht das :)

1. µC Programm schreinen like this: 
http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=DL172
2. PC-Anwendung schreiben like this: 
Beitrag "Daten von C# über USB/COM3 zum Mikrocontroller schicken"

... ne im ernst... schau dir mal den code vom simpleterm an und portiere 
den auf den m2560... dann kannst du schon mit einem einfachen terminal 
wie hyperterm schalten und walten... was hast du denn für 
programmierumgebungen?


Gruß hansi

von Christoph H. (christoph_b)


Lesenswert?

verwende das AVR Studio 5.
Hoffe das ich das hinbekomme. (Programiere erst seit ca 2 Monaten) ;-)

von Christoph H. (christoph_b)


Lesenswert?

Hallo

So habe nun ein Programm für den Atmega 2560.

Mit dem String ON schalte ich alle LEDs ein mit OFF aus.
Soweit so gut.

Nur mit dem C# Programm klappts nicht.

1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
using System.IO.Ports;
10
11
namespace SerialPort
12
{
13
    public partial class Form1 : Form
14
    {
15
        public Form1()
16
        {
17
            InitializeComponent();
18
        }
19
20
        private void button1_Click(object sender, EventArgs e)
21
        {
22
                    //configuring the serial port
23
        serialPort1.PortName="COM1";
24
        serialPort1.BaudRate=9600;
25
        serialPort1.DataBits=8;
26
        serialPort1.Parity=Parity.None;
27
        serialPort1.StopBits= StopBits.One;
28
29
        //opening the serial port
30
        serialPort1.Open();
31
32
        //write data to serial port
33
        serialPort1.Write("OFF");
34
35
        //close the port
36
        serialPort1.Close();
37
38
39
        }
40
    }
41
}

Es blinkt zwar die LED auf dem SmartUSB aber es kommt sonst nichts an.
Erst wenn ich Putty öffne und dann Enter drücker kommt das OFF an.

Wo liegt der Denkfehler??

MFG Christoph

von Christoph H. (christoph_b)


Lesenswert?

OK Habe den Fehler gefunden.
Manchmal sieht man den Wald vor lauter Bäumen nicht ;-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Christoph B. schrieb:
> OK Habe den Fehler gefunden.

Danke dafür, dass Du uns an Deinem Glück teilhaben lässt.
Kein Danke dafür, dass Du uns dumm sterben lassen willst.

von Christoph H. (christoph_b)


Lesenswert?

Sorry hier die Änderung.
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
using System.IO.Ports;
10
11
namespace SerialPort
12
{
13
    public partial class Form1 : Form
14
    {
15
        public Form1()
16
        {
17
            InitializeComponent();
18
            //configuring the serial port
19
            serialPort1.PortName = "COM1";
20
            serialPort1.BaudRate = 9600;
21
            serialPort1.DataBits = 8;
22
            serialPort1.Parity = Parity.None;
23
            serialPort1.StopBits = StopBits.One;
24
            //opening the serial port
25
            serialPort1.Open();
26
            serialPort1.Write("                   \r");
27
28
        }
29
30
        private void button1_Click(object sender, EventArgs e)
31
        {
32
33
34
35
36
        //write data to serial port
37
        serialPort1.Write("ON" +"\r");
38
39
40
        }
41
42
        private void button2_Click(object sender, EventArgs e)
43
        {
44
45
            //write data to serial port
46
            serialPort1.Write("OFF\r");
47
48
49
50
        }
51
    }
52
}

Es fehlte das Enter am Ende des Strings (/r)

von Christoph H. (christoph_b)


Lesenswert?

so nachdem ich nun etwas herumgespielt habe würde ich noch gerne einen 
Statusabfrage einbauen.

Das heißt. Wenn ich z.B PORTL0 schalten will sende ich WR_PORTL=01 bei 
PORTL7 WR_PORTL=80. So weit so gut. Klappt auch alles.

Nur wie mache ich eine Abfrage von einem RS232 Port??
Als Rückgabe bekomme ich vom Board z.B WR_PORTL=80_OK oder 
WR_PORTL=01_OK

MFG Christoph

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.