Forum: Mikrocontroller und Digitale Elektronik Steuerung mit C# verwirklichen


von Elektroniker (Gast)


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

von ?? (Gast)


Lesenswert?

was jetzt: c# oder c?

mit c# - vergiss es, mit c gehts gut

von Elektroniker (Gast)


Lesenswert?

Sind die Unterschiede so gravierend?

von dito (Gast)


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.

von Frederik K. (n0ll4k)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

Elektroniker schrieb:
> Sind die Unterschiede so gravierend?

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

von dito (Gast)


Lesenswert?

Elektroniker schrieb:
> Sind die Unterschiede so gravierend?

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

von Elektroniker (Gast)


Lesenswert?

OK, dann C.

von Karl H. (kbuchegg)


Lesenswert?

Na denn

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

von Elektroniker (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


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

von Axel D. (axel_jeromin) Benutzerseite


Lesenswert?

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


Axel

von spess53 (Gast)


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

von grastino (gastino unterwegs) (Gast)


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

von Axel D. (axel_jeromin) Benutzerseite


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

von Elektroniker (Gast)


Lesenswert?

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

von Elektroniker (Gast)


Lesenswert?

Übrigens, danke für die ganzen Anregungen. (except manni)

von Daniel R. (zerrome)


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

von Karl H. (kbuchegg)


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.

von Axel D. (axel_jeromin) Benutzerseite


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

von Elektroniker (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


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.

von Lehrmann M. (ubimbo)


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

von Elektroniker (Gast)


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!

von Axel D. (axel_jeromin) Benutzerseite


Angehängte Dateien:

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

von Elektroniker (Gast)


Lesenswert?

Schon mal Danke =)

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.