Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#27

Re: Programmierung von Mikrocontrollern

  Alt 8. Sep 2007, 18:32
Sowas gibt es auch schon, mir fällt der Name des Produktes aber nicht ein. Damit kann man einfache analoge und digitale Schaltungen simulieren. Ein PlugIn für einen AVR war auch drinnen. Nur, das lohnt nicht. Du hast ein STK500, AVRStudio um mit ASM und WinAVR GCC C direkt arbeiten zu können, und eben ein AVR der JTAG neben ISP unterstützt. Du steckst den ATMega in den passenden Slot und loss gehts mit deiner Programmierung. Und das Beste du debuggst per JTAG die CPU direkt. Auch da gibt es schon manche Stolpersteine da diese Art der Simulation nicht in jedem Falle aussagekräftig ist, das ist bei einer absoluten Trocken-Simulation noch viel stärker der Fall. Die meisten Bastler bauen sich eine Debugausgabe in das Program rein, zb. eine LED an einem Pin die blinkt, oder nutzen den UART, weswegen das STK500 auch 2 solcher RS232 Schnittstellen hat.

Eines steht fest: MCU Programmierung erzieht zu geplantem Vorgehen des Programmierers laut Datenblättern, Formeln usw. Da ist nichts mehr mit Delphi-like Trial&Error nach jeder Zeile Quellcode, den man gerade eben eingetippt hat, mal schnell compilieren und sehe was passiert.

Am Anfang habe ich das STK500 auf die Schnelle mit einer Lauflicht/Blinklicht Steuerung programmiert. Du hast ja 8 LEDs + 8 Taster. Da bietet sich so einiges an um die Hardware kennen zu lernen. Zb. verschiedene Lichtmuster die du per Taster einstellen kannst, also 2 Taster um vorwärts/rückwärts durch die Lichtmuster zu gehen. Dann die Geschwindigkeit der Muster, wieder 2 taster usw. Am Anfang ganz simpel per Zeitschleifen und ansonsten nur Ansteuerung des Ports an dem die LEDs und Taster hängen, also In/Output der Ports erlernen und die Berechnung von exakten Zeitschleifen (die Opcodes des AVR sind abolut vorherberechnenbar wieviel Zeit ein Programcode benötigt). Dann erweiterst du das langsam. Das heist der erste Timer und Interrupt Steuerung wird eingebaut. Einmal für die LED Muster und einmal die verschiedenen Möglichkeiten die Taster per IRQ und ISR abzufragen. Entprellung per Software. Dann gehts weiter, ersetze die Taster durch 2 Potentiometer und nutze den ADC des AVRs, also Analog zu Digital Wandlung. Auch da wieder erstmal die einfache Variante mit dem Polling des ADCs und später per Interrupts. Und so gehts immer weiter, der UART als nächstes um eine Debugausgabe zu machen. Für den PC benötigst du eine gute Terminal Software um den COMx ansprechen zu können, ich nutz sehr gerne Terminal v1.9b by Br@y++. Falls du diese Freeware haben willst mail mir. Hyperterminal geht aber zur Not auch. Es schadet auch nicht auf Suche von fertigen UART Source zu gehen, für den ATMega8, 48,88,168 gibts ausreichende, suche auf www.avrfreaks.net oder www.mikrocontroller.de
Und dann Soundausgabe per PWM. An einem PWM Ausgang ein Tiefpass mit einfachem Kondensator und Widerstand und dahinter ein Mono Kopfhörer. Per PWM und Timer dann mal einen Sinus erzeugen usw. usw. Es gibt wirklich viele Möglichkeiten.
Und dann mal versuchen den AVR Stromverbrauch zu drücken, am STK500 gibts einen Jumper den du ziehst und stattdessen ein Amperemeter anschließt. Die verschiendene Sleep Modis ausprobieren und mal schauen ob du die < 1µA im Powerdown erzielen kannst Na und dann das EEPROM schreiben und lesen, den FLASH per AVR selber programmieren um daraus einen Bootloader zu bauen... ach da gibts so viel soll ich noch was von meinen ganzen Projekten erzählen ? Nokia6100 und S65 Display ansteuern, mit Grafikbibliothek für Ellipsen,Kreise,Multicolor Fonts und Bitmaps/Icons samt Komprimierung, mein elektronisches Drumprojekt, oder die Solar-Glühwürmchen, oder Funkübertragung in einer Wetterstation mit Luftdruck, Temperatur, Feuchtigkeit, Windrichtung und Geschwindigkeit, mein Dot-Matix Wecker mit Sensortasten hinter einer getönten Glasschreibe wie bei Startrek

Gruß Hagen
  Mit Zitat antworten Zitat