Das Programm kratzt inzwischen knapp an der 1KByte Grenze, aber es sind ja noch 7kByte frei.
Woran ich jetzt sitze (wird denke ich mal länger dauern) ist ein Menü, in dem man Einstellungen (Multiplikatoren) für Spannung, Strom, Impulse und RS232-Schnittstelle vornehmen und die Maximalwerte anzeigen kann. Das Menü wird eine Art Endlosschleife, in die man mit der Sterntaste reinkommt und jederzeit mit der 0-er Taste wieder raus zur Anzeige der aktuellen Werte. Einstellungen werden durch drücken einer Zahltaste vorgenommen und mit der # Taste abgespeichert.
Die Dafür hab ich folgende Struktur vorgesehen, in der man mit der Sterntaste von einem Punkt zum nächsten kommt.
1.) Maximalwerte anzeigen, 0...beenden
2.) Impulszahl ändern (Impulse/Umdrehung): 1...1 Impuls, 2...2Impulse, 3...4 Impulse, 4...8 Impulse, 5...14 Impulse, 6... 16 Impulse, 0...beenden
3.) Maximale Spannung: 1...5V, 2...10V, 3...20V, 4...40V, 0...beenden
4.) Maximaler Strom: 1...5A, 2...10A, 3...20A, 0...beenden
5.) RS232 Eistellungen: 1...2400Baud, 2...9600Baud, 3...19200Baud, 4...aus, 0...beenden
6.) Displaytest (zeigt schwarze Dreiecke an), 0...beenden
Die Werte, die man wählen kann rühren teilweise von der technischen Machbarkeit her. Doppelte Werte sind einfach programmierbar, die Baudraten abhängig vom Quarz, in meinem Fall ein 4MHz Modell (höchste erreichbare Frequenz die mit dem etwas stromsparenderen XT Modus, der Highspeed Modus braucht dann statt ca. 1,2mA ca. 2,1mA). Die Quarzfrequenz ist aber wichtig für das Programm, da damit direkt die Drehzahlberechnung und die Baudrateneinstellung (relativ kritisch) zusammenhängt, für das Ausschalten der RS232-Schnittstelle kann ich dann auch einen noch freien Pin nehmen, der per Transistor den Max232 von der Stromversorgung trennt und so Strom einspart. Auch eine Deaktivierung des Displays zum Stromsparen sollte möglich sein, denn es wird wohl niemand permanent davorstehen. Hier könnte man eine Art Zeitschaltung machen die das Display nach einer bestimmten Zeit (evtl. per Menü

einstellbar) deaktiviert.
Es bieten sich also noch jede Menge Ideen, das Problem ist nur welches Display man nehmen kann, derzeit verwende ich ein 2x24Zeichen Display von dem aber momentan nur 20 Zeichen genutzt werden, man würde also mit 2x20 Zeichen auch auskommen.
Pinbelegung momentan:
Port A:
RA0: Analogeingang Spannung
RA1: Analogeingang
frei, aber schon ausprogrammiert, bräuchte nur noch an eine bestimmte Displaystelle geschrieben werden.
RA2: Analogeingang Strom
RA3: Analogeingang Windgeschwindigkeit
RA4: Impulseingang für Drehzahlmessung
RA5: Analogeingang
freiPort B: 8 Ports, voll belegt mit Tastatur und Display
Port C:
RC0:
freiRC1:
frei, reserviert als möglicher PWM Ausgang für Schaltregler
RC2:
frei, reserviert als möglicher PWM Ausgang für Schaltregler
RC3:
frei, SCL (I²C Bus) für zukünftige Nutzung mit seriellem EEPROM als Datenspeicher reserviert
RC4:
frei, SDA (I²C Bus) für zukünftige Nutzung mit seriellem EEPROM als Datenspeicher reserviert
RC5:
freiRC6: RS232 TX
RC7: RS232 RX
Somit bleiben genau genommen 4 freie Pins übrig. 2 davon können als Analogeingänge für weitere Spannungsmessungen genutzt werden. Mit den anderen beiden kann man z.B. nicht benötigte Hardwarekomponenten (Display, RS232 Schnittstelle) abzuschalten. Wer die RS232 Schnittstelle nicht benötigt kann aber auch einfach den Chip unbestückt lassen.