Hallo Spinner,

als erstes möchte ich dich Bitte, bring erst mal ein kleines Projekt zum Erfolg z.B.(LCD-Anzeige), dann fang das nächste an. Nicht wie ich vermute erste klappt nicht nun mache ich was anderes.
Dies ist nach meiner Meinung der aller größte Fehler für „Einsteiger“.
1. musst du dich mal für eine Programmiersprache entscheiten(ist aber oft von fertiger Hardware abhängig) Ich Empfehle: Bascom (ist ja sehr gut lesbar) Später kann man immer noch umsteigen, ich bin und bleibe bei BASCOM. Den Compiler kann man nicht mit dem alten BASIC-Compiler für DOS auf eine Stufe stellen. Die erzeugte Hex-Datei zum schreiben auf einem Controller ist schon sehr „schmal“ Aber Bitte beachten dies ist meine Meinung und soll auf keinen Fall eine andere Programmiersprache abwerten. Denn hier geht es um den Einstig in dieser Materie und nicht was ist besser oder schlechter.
2. Einfach eine Hex-Datei die als Beispiel geliefert wird zu „laden“ und diese nicht lesen kann(ich kann es noch mit einigen Aufwand) ist doch nichts für „Einsteiger“. Da solle man sich schon auf die Entwickler verlassen. Wie ich es auch mache.
3.
So nun zu der direkten Anfrage.
Die bas-datei ist dein Programm, um es aber in Maschinencode(Hex) zu wandeln musst du in Bascom erst mal das Butten [Comile] oder F7 drücken. Nur dann wird die Hex erzeugt. Erst danach auf [Program chip] oder F4.
All dies, hat den Vorteil du musst nicht wie in C oder GCC erst mal eine Datei #include <avr/io.h> oder MCU usw. erstellen. All dies macht Bascom mit der „Kopfeinstellung“

Z.B wie ich es aus deinem Versuch mit LCD erkennen kann.
$regfile = "m8def.dat" 'ist ein ATMega8

‚diese Einstellungen kann ich später beschreiben wenn gewünscht.
$hwstack = 40
$swstack = 40
$framesize = 40
‚Hier ist Vorsicht angesagt, ist immer abhängig von der Fuse Einstellung.
‚Ist dein µC mit ext. Quarz beschaltet muss die Frequenz hier eingestellen.
$crystal = 8000000 'Interner Takt (8MHz)
‚Erst mal später einfügen wenn COM- Terminal verwendet wird
$baud = 19200 Register für COM-Ausgabe reservierten

‚Möchtest du die Pins für Analogeingang einstellen kommt als nächste Zeile.

Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Referenzspannung auf 5 Volt

Der int. Wandler benötigt eine Spannungsversorgung also AVCC mit 5Volt verbinden.
AREF ist ein Referenzspannungsausgang, erstmal offen lassen


Bedeutet dein Poti ist auf eine Seite auf 5V die andere auf GND. Der Schleifer geht auf einem Analogeingang des µC. Angenommen auf Pin AD0. Die Abfrage wäre somit Getadc(0)
Da der µC nur ein ADC DC Wandler hat und alle Eingänge abgefragt werden können, muss Multiplexer gestartet werden. Dies macht der Befehl:

Start Adc

'So nur noch Analog – Eingang dimensionieren
Dim A0 As Word
‚nun wird in die Variable A0 das Ergebnis geschrieben.
A0 = Getadc(0)
‚Nun kannst du Entscheidungen treffen z.B ist A0 = 1023 (Schleifer auf 5Volt)

IF A0 > 1020 Then ‘“mach was”
‘Else ‘mach was anderes”
End If

PS. Hast du eine kleine Hardware aufgebaut und beschreibst diese mit verwendeten Controller (wichtig Controllertaktung) und Pinbelegung, schreibe ich dich nach Anforderung eine Bas. Sende dann diese auch in Hex-Code, damit du Erfahrungen sammeln kannst.
Kann nur dann Helfen, indem ich Hardware nachbaue und Software testen kann.

Mit freundlichen Grüßen
fredred