Hardwareprogrammierung (Beginner)
-
Das Themengebit ist breiter als man sich im ersten Moment denkt.
Frage: willst du HW vom PC aus ansteuern?
HW-Ansteuerung mit C++ ist nur dann möglich, wenn dir eine entsprechende C++-API (oder C-API) zur Verfügung steht. Das kann z.B. durch das Betriebssystem, Treiber oder Library (z.B. DLL) bereit gestellt werden. Da bist du dann natürlich auf bestimmte HW eingegrenzt. Aber für den Einstieg am einfachsten.
Den RS232- oder USB-Port kann man über Windows-API steuern. In dem man einfach was sendet und empfängt. Bei Conrad Elektronic gibts immer solche Bausätze, für erste Gehversuche, die man von Windows aus steuern kann.
Oder willst du autarke HW steuern/programmieren? Z.B. einen Microcomputer? Da kommt es wieder darauf an, ob es für solche Geräte Betriebssysteme gibt (speziell für Embedded-Systeme). Dann ist es einfach und man programmiert ganz normal mit C++ gegen die API des entsprechenden OS. Wenn es kein OS oder Library für gibt, dann mußt du auch Assembler-Kenntnisse mitbringen, um die Basis zu programmieren, damit du dann C++ nutzen kannst.
Also, spezifier mal was du genau vorhast. Möglich ist alles mit C++. Muß nur wissen was.
-
hi,
es gibt fertig aufgebaute evaluation boards und starter kits für alle möglichen MCU's. da sind meistens schon ein paar LEDs drauf, serielle schnittstelle, kleine schalterchen und 'ne menge digitale IO ports.
zum programmieren werden die an'n PC angeschlossen (über RS232, USB oder am druckerport uws.).
musst dir nur drüber klar werden, was du genau machen willst (für'n controller du brauchst und wieviel speicher der haben soll etc.)btw: programmiert werden die für gewöhnlich in C (ohne ++).
assembler-kenntnisse sind meistens nicht nötig, aber von vorteil...
-
Hallo,
also es soll wirklich für Anfänger gedacht sein.Bei Conrad.de habe ich keinen solchen Bausatz gefunden. Hat jemand eine
Bezeichnung oder einen Link? Vermutlich habe ich nach dem falschen Begriff
gesucht.Was ich versuchen möchte ist, eine LED-Anzeige zum leuchten zu bringen,
bzw. irgendwann mal ein Gerät steuern zu können. Natürlich am Anfang ganz trivialWichtig ist halt, dass man Step by Step rangeführt wird.
-
guckst du: http://www.microcontroller-starterkits.de/
btw: von wegen conrad: lass dir bloss keine C-control aufschwatzen
-
hallo vista,
das sieht ja schonmal richtig gute aus (der Link).
Nur, wie bekomme ich nun den Einstieg hin? Ich habe noch NULL Plan
Gibt es gute Tuts/Bücher?
-
hier ist ein tut zu'ner sehr beliebten controller familie: http://www.mikrocontroller.net/articles/AVR-Tutorial
-
Hi, ich bin daran einen Microcontroller zu Programmieren und habe auch schon ein paar programme geschrieben. Nun hänge ich aber an folgendem Problem:
Ich möchte auf eine Taste des MC's drücken, diese Taste bsp. 3 sekunden halten und dann wieder loslassen. Wenn ich das nicht tut soll nichts passieren, wenn ich das tue dann soll der MC ein bestimmten Programmteil durchführen.Ich programmiere in C/C++ und bekomme es nicht hin, dass mein Programm es realisiert wann ich 3 sekunden lang die Taste gedrückt halte und wann nicht. Kann mir da jemand vll weiterhelfen wie ich das richtig umsetzen kann ?
danke
-
Du könntest einen Interrupthandler schreiben (siehe http://www.mikrocontroller.net Tutorials) oder das Register, welches mit dem Port (oder auch Pin) verbunden ist auslesen.
-
Beim einlesen von Tastern ganz wichtig (und typischer Anfängerfehler): Die Taste muss Entprellt werden. Entweder in Hardware, oder (typischerweise) in Software.
Btw: Alte Threads rauskramen ist eigentlich nicht so toll.
-
Eddie85 schrieb:
Ich möchte auf eine Taste des MC's drücken, diese Taste bsp. 3 sekunden halten und dann wieder loslassen. Wenn ich das nicht tut soll nichts passieren, wenn ich das tue dann soll der MC ein bestimmten Programmteil durchführen.
fast alle MCUs haben timer integriert. starte einen solchen wenn die taste gedrückt wurde und beim loslassen kannst du ihn stoppen/auslesen. damit kannst du die zeit messen, die die taste gedrückt war. ohne timer könntest du in einer schleife eine 'unsigned long' variable hochzählen, aber sowas ist immer doof, muss man ausmessen, interrupts disablen usw. besser mit 'nem timer...