Hallo icebobo.

Erstmal herzlich willkommen im Forum und viel Erfolg mit deinem Projekt.

Zitat Zitat von icebobo Beitrag anzeigen
1. Erstmal wollte ich ganz gern wissen ob man dass überhaupt so machen kann? Und ob ich noch was an meinem Programmierstil verbessern kann? (nimm gerne Tips an)
Sieht ziemlich linear aus, wenig optisch gegliedert; aber das ist Geschmackssache. Was gar nicht geht: d'1000' von einem Byte abzuziehen. Dein Controller arbeitet mit 8bit-Werten! Ich will mir gar nicht ausmalen, was der Preprozessor/Assembler aus einem d'1000' macht ... Du wirst dir eine 16bit-Subtraktionsroutine schreiben oder suchen müssen. Es gibt Application Notes von Microchip auch für mathematische Aufgabenstellungen, jeweils auf der Hauptseite für diesen Prozessor. Und zieh dir auch Beschreibungen über die "PIC-Fallen" der PIC16er Typen rein, das kann viel Zeit und Frust sparen. Ein gewisser 'sprut' hat das irgendwo auf seiner Website recht anschaulich gemacht.

Zitat Zitat von icebobo Beitrag anzeigen
2. Ich bin mir nicht ganz sicher, ob ich das mit der Variablen Deklaration so machen kann? Habe noch nicht so viel mit cblock gearbeitet.?
Ich noch gar nicht, aber das sieht nach einer hilfreichen Direktive aus. Das werde ich für mich selbst nun auch ergründen.

Zitat Zitat von icebobo Beitrag anzeigen
3. Kann ich zur Bankauswahl BANKSEL benutzen oder muss ich RP0 und RP1 setzen?
BANKSEL erzeugt m.W. immer zwei BSF / BCF-Befehle für RP0 und RP1 und macht den Code besser portierbar und sicherer als das explizite einstellen von RP0, RP1.

Zitat Zitat von icebobo Beitrag anzeigen
4. Ich bin mir nicht sicher wie ich die Schritte einteilen kann, also bei der Temperatur z.B. soll ja von 0 bis 50 angezeigt werden und im Moment gibt er bei mir ja jeden Schritt aus, also 0 bis 255. Wenn man das aufteilt könnte man ja sagen das man den Wert durch 5 dividiert das müsste ungefähr hinkommen. Ich bin mir aber nicht sicher wie ich das umsetzen kann.
Wenn du bereits 0,1V je Grad Celsius angeliefert bekommst, hast du schon gewonnen. Trimme ggf. die Referenzspannung des ADC auf 2,55V, damit du direkt in Volt interpretierbare ADC-Zahlenwerte bekommst. Du hast kein Rechenzeitproblem, also zähle, wie oft du vom ADC-Ergebnis 5 abziehen kannst (16bit-Subtraktion!) ohne negativ zu werden. Der Rundenzähler ist dann dein Divisionsergebnis. Evtl. noch eine Rundungsbetrachtung des Restwertes.

Zitat Zitat von icebobo Beitrag anzeigen
5. Gibt es vllt für den Automatikbetrieb noch eine elegantere Lösung? Ich habe da ja jetzt nur alle drei hintereinander geschrieben mit nem kleinen delay.?
"Elegant" kann viel heißen: (a) gut nachvollziehbar, auch noch nach vier Wochen(!) oder (b) gut erweiterbar oder (c) gut umbaubar weil modular oder manchmal einfach nur (d) bewundernswert kompakt.
"Keep it simple" ist zunächst eine gute Herangehensweise. Zu fragen wäre noch, ob ein Moduswechsel auf Einzeldarstellung erst erfolgen braucht, wenn der Automatikzyklus durchgelaufen ist oder ob jederzeit eine sofortige Umschaltung gefordert wird. Wenn jede einzelne Mess- und Anzeigeaufgabe als Prozedur (call) gegliedert ist, kann man nach jedem Schritt auf Tastendrücke abfragen und die Automatik beenden.