|
|
UAC Mikrocontroller ASCII Console
[Bearbeiten] EinleitungDie uAC (Mikrocontroller ASCII Console) ist dafür gedacht, dass ein Benutzer mit seinem Controller kommunizieren kann. Es können Kommandos abgesetzt werden oder die Firmware kann Ausgaben tätigen. Die Datenübertragung ist nicht auf RS232 beschränkt, sondern kann vom Programmierer über beliebige Schnittstellen geschehen. Eine Implementierung einer solchen Datenübertragung ist somit allerdings unabdingbar.
[Bearbeiten] Software[Bearbeiten] AllgemeinVor der Benutzung der uAC-Funktionen muss die uac_init() aufgerufen werden. Damit die uAC Zeichen verarbeitet muss die Funktion uac_task() periodisch aufgerufen werden. Beispiel:
[Bearbeiten] Ausgabe von DatenDies geschieht über die uac_printf()-Funktion. Prinzipiell ist sie ansprechbar wie die gemein bekannte printf(). Allerdings stehen (in der Version 0.3) nur
Beispiel
Wichtig zu wissen ist, dass alle '\n' in der uac_printf() durch das define '_uAC_NewLineString' ersetzt werden. Man braucht sich also nicht darum kümmern, ob das benutzte Terminal "\n" oder "\r\n" benötigt. die Unterstützung für float und double kann über das define uAC_Print_f_Type aktiviert / deaktiviert werden. Um Strings auszugeben die im Flash liegen wird die Funktion uac_printf_P() benutzt. Sie verhält sich an sonsten genau wie die uac_printf() Funktion. [Bearbeiten] KommandobefehleSehr hilfreich ist es, wenn nicht nur die Firmware Ausgaben an den Benutzer weitergibt, sondern wenn auch der Benutzer Anfragen an die Firmware stellen kann. In uAC funktioniert das so, dass eine Kommandofunktion, mittels uac_attach() bekannt gemacht wird. Als Parameter übergibt man einen String (den Kommandobefehl) und einen Zeiger auf die Funktion, die bei Eingabe dieses Befehls aufgerufen wird. Die Kommandofunktion muss als Parameter einmal ein Integer besitzen, welcher beim Aufruf die Anzahl der übergebenen Parameter enthält (ArgC) und Zweitens einen Array von Zeigern auf Chars. Letzteres enthält einen Char* Vektor auf die Parameter (ArgV). Beispiel einer Kommandofunktion:
Beispiel wie die obige Kommandofunktion bekannt gemacht wird:
Nach dem uac_attach() wird die Funktion TestCMD() aufgerufen, wenn der Benutzer "test\n" eingibt. [Bearbeiten] Implementierung der DatenübertragungDie uAC Software kümmert sich in keinster Weise um die Übertragung der Daten (chars). Dies obligt dem Programmierer. Grundsätzlich gibt es drei uAC-Funktionen die eine Schnittstelle bereit stellen:
Um eingehende Zeichen zu verarbeiten, kann z.B. in eimen USART-Interrupt, dass bei einem eingehenden Zeichen ausgelöst wird, dass ankommende Zeichen per uac_rx() versendet werden. Um ausgehende Zeichung zu verarbeiten, kann z.B. in der Hauptschleife die Funktion uac_txavailable() gepollt werden und gegebenfalls ein Zeichen mit uac_tx() an den USART gesendet werden. [Bearbeiten] Version Log[Bearbeiten] Version 0.2Rename the main functions:
Bugfixes:
Features:
[Bearbeiten] Version 0.3
released 03/22/2011 [Bearbeiten] Version 0.4
released 06/12/2011 [Bearbeiten] Version 0.5
released 09/01/2011 [Bearbeiten] Downloads[Version 0.5 von Mikrocontroller.net downloaden] [Version 0.4 von Mikrocontroller.net downloaden] [Version 0.3 von Mikrocontroller.net downloaden] [Version 0.2 von Mikrocontroller.net downloaden] [Version 0.1 von Mikrocontroller.net downloaden] [Bearbeiten] SonstigesFragen und Antworten an lodentoni |