www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Steuerung mit C# verwirklichen


Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander,

ich will eine Schaltung entwickeln mit welcher man via LWL einen 
Lastteil schalten kann (IGBT). Die schaltung soll mit einem LC-Display 
ausgestattet sein und eine superhelle LED schalten.

Einstellungen:
Man soll folgende Funktionen verwirklichen können:
LED permanent EIN bzw. AUS und Ausgangsignale von ca. 100ms bis 100s 
(Stufenweise). Da ich nur eine LED habe wird natürlich nur immer eine 
Impulsdauer gewählt.

Bis vor einiger Zeit habe ich mit PICs gearbeitet und mit Assembler 
programmiert, da ich bei meinem letzten Projekt enorme Probleme hatte, 
die µC sind schlicht und ergreifend zu langsam (liegt teilweise auch an 
programmierung - aber meine distanzierung steht unwiderruflich fest), 
möchte ich einen Atmega(evtl den 64er) mit C# programmieren.

Ich denke dass das Display mir die größten Probleme bereiten dürfte, 
allerdings stell ich dieses mal hinten an.

Hat zufällig jemand ein vergleichbares Programm schon mal geschrieben 
und könnte es mir geben bzw. mir Hilfestellung leisten, meine 
Programmierkenntnisse in C sind mehr als begrenzt.

Hab mir gerade das Gratisbuch zu C bestellt (mikrocontroller.net sei 
dank =) )

Würde mich sehr über konstruktive Beiträge freuen.

MFG

Autor: ?? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was jetzt: c# oder c?

mit c# - vergiss es, mit c gehts gut

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind die Unterschiede so gravierend?

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für C# brauchst du die .NET-Laufzeitumgebung. Ich kann mir nicht 
vorstellen, dass es die für einen uC gibt. Wenn dir C zu Lowlevel für 
die GUI-Programmierung deines Displays ist, könntest du ja als 
"Kompromiss" C++ verwenden.

Autor: Frederik Krämer (n0ll4k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wirst einfach keinen Compiler für c# finden der dir das auf den AVR 
bringt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Sind die Unterschiede so gravierend?

ungefähr 80 Megabyte Laufzeitumgebung.
Und da sind die unterschiedlichen Sprachphilosophien noch gar nicht mit 
eingerechnet.

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Sind die Unterschiede so gravierend?

Ja, zwei völlig unterschiedliche Konzepte und für völlig 
unterschiedliche Einsatzzwecke entwickelt.

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann C.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na denn

AVR-Tutorial      (ja, ich weiß - ist Assembler. Enthält aber trotzdem
                   viel Nützliches und Wissenswertes)
AVR-GCC-Tutorial

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich fang einfach mit den letzteren an, wird dort eigentlich auch 
erläutert "wie ich was" programmiere. Anders gesagt, die Befehle.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Ich fang einfach mit den letzteren an, wird dort eigentlich auch
> erläutert "wie ich was" programmiere. Anders gesagt, die Befehle.

Wenn du erst mal C lernen musst, dann würde ich dir empfehlen dir ein 
gängiges C-Buch zu kaufen (*) und deine ersten Schritte damit auf dem PC 
zu machen. Wenn dann ein gewisser C-Grundstock vorhanden ist und auch 
sitzt, gehts leichter die µC-spezifischen Dinge da reinzupacken.

Zur Not:
http://openbook.galileocomputing.de/c_von_a_bis_z/
(Auch wenn ich persönlich nicht viel von Online-Lesen halte. Ein 
gedrucktes Buch kann man neben dem Monitor liegen haben)

Gängig ist zb 'die Bibel'
Kernighan & Ritchie
Programmieren in C

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kopiere Dir : lcd-routines.c und lcd-routines.h aus dem Tutorial dann 
hast Du schon mal ein Erfolgserlebnis mit dem LCD.


Axel

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>kopiere Dir : lcd-routines.c und lcd-routines.h aus dem Tutorial dann
>hast Du schon mal ein Erfolgserlebnis mit dem LCD.

Klar. Copy&Paste-Generation. Verstehen muss man es ja nicht.

MfG Spess

Autor: grastino (gastino unterwegs) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Bis vor einiger Zeit habe ich mit PICs gearbeitet und mit Assembler
> programmiert, da ich bei meinem letzten Projekt enorme Probleme hatte,
> die µC sind schlicht und ergreifend zu langsam (liegt teilweise auch an
> programmierung - aber meine distanzierung steht unwiderruflich fest),
> möchte ich einen Atmega(evtl den 64er) mit C# programmieren.

Also wenn Dir die PICs mit Assembler zu langsam sind, dann ist C# aber 
die denkbar ungünstigste Alternative überhaupt. Mal abgesehen davon, 
dass Du für C# keinen Compiler für AVR finden wirst.

Also, wie schon mehrfach hier empfohlen: C

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit einem Erfolgserlebnis lernt es sich doch leichter.

Für diese Aufgabenstellung zuerst ein dickes Buch zu lesen und dann zu 
beginnen ist recht zäh.
Der TE hat doch schon einige Vorkenntnisse und sich auch eine 
vernünftige Aufgabenstellung gesucht.


Axel

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hätte gehofft, dass das hier Objektiv bleibt.
Also Manni, geh bitte weiter Minesweeper spielen. Falls du ne Anleitung 
brauchst, drück F1. =)

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens, danke für die ganzen Anregungen. (except manni)

Autor: Daniel R. (zerrome)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, es gibt C# für kleinere Prozessoren (32 Bit 64k Ram) :

http://www.microsoft.com/netmf/about/default.mspx

heißt dann .Net Micro Framework

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel R. schrieb:
> Hallo, es gibt C# für kleinere Prozessoren (32 Bit 64k Ram) :

Nur zur Klarstellung: In dem Bereich in dem wir hier uns normalerweise 
bewegen, also Steuerung einer Waschmaschine oder dergleichen, ist das 
kein kleiner Prozessor mehr, sondern schon ein sportlicher Bolide.


Wenn das Zeugs in den 64k auch so flüssig läuft wie auf den Pocket-PCs, 
na dann gute Nacht zeitkritische Steuerung.

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
macht aber mehr Sinn einen Mega 8 oder Mega88 auf internen 1 MHz zu 
nehmen, den Timer 1 solange zu probieren bis der Interrupt alle 100ms 
aufgerufen wird und dann die Aufrufe zu zählen. Fertich.


Axel

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Puh, hört sich für mich nicht so einfach an. Kannst du's kurz erläutern?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Puh, hört sich für mich nicht so einfach an.

Im Grunde ist es das aber

> Kannst du's kurz erläutern?

Steht eigentlich mehr oder weniger alles in den Tutorien drinnen.
Das Problem: Er müsste hier bei 0 mit der Erklärung anfangen. Und dann 
schreibt er im Grunde ein neues Tutorium extra für dich.

Auch wenn du schon mit PIC gearbeitet hast:
Du solltest die Tuorien wirklich ernst nehmen und von Anfang an 
durcharbeiten (beide!). Mit deinen Vorkentnissen wird das schnell gehen, 
aber nur so merkst du dir die kleinen Details.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektroniker schrieb:
> Bis vor einiger Zeit habe ich mit PICs gearbeitet und mit Assembler
> programmiert, da ich bei meinem letzten Projekt enorme Probleme hatte,
> die µC sind schlicht und ergreifend zu langsam (liegt teilweise auch an
> programmierung - aber meine distanzierung steht unwiderruflich fest),
> möchte ich einen Atmega(evtl den 64er) mit C# programmieren.

Mit solchen Aussagen wäre ich hier ziemlich vorsichtig. Gerade weil sich 
hier jeder schräg lacht weil der Wechsel von PIC -> ATMEGA sicherlich 
nicht deine Unfähigkeit zu Programmieren kaschieren kann.
Die maximalen Taktfrequenzen sind bei PIC & ATMEGA identisch genauso wie 
die Dauer der Ausführung einer Instruction. Ich bin dafür, dass du 
ordentlich Programmieren lernst (ob nun auf PIC oder ATMEGA ist egal).

Wie du in C# einen MEGA programmieren willst da bin ich gespannt.

Aber eines kann ich dir sagen: Deine Programme werden auf dem ATMEGA 
genauso schnell oder langsam sein wie auf dem PIC ...

Ich bin ja gespannt wie du einen derart Objektorientierte Sprache wie C# 
+ .net Framework auf den ATMEGA bringen willst. Wenn du's geschafft hast 
und das laden nicht 2 Stunden braucht, dann hast du garantiert gelernt 
wie man effizient programmiert.

In diesem Sinne ...

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Immer langsam mit deinem Sarkasmus. Hab wie gesagt keine lust mehr auf 
Assembler und mach nun C. Wie gesagt nicht C# sondern C, hättest du auch 
nachlesen können. Aber deinen Kommentar hättest du dir auch sparen 
können, versuch mal hilfreich zu sein - Immerhin ist dein Name Lehrmann!

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Elektriker,
nimm einen Mega88 und die angehangene Datei und schließ das LCD so wie 
in der Datei beschrieben an. Dann sollte was auf dem LCD erscheinen.

Axel

Autor: Elektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal Danke =)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.