Hi Marius,
denk an Maltes Anmerkung in Deinem andern Thread über Deine "$crystal = ..."-Zeile. Da Du auch in diesem Schaltplan keinen Quarz hast, ist Deine Codezeile mit "$crystal = 4000000" keinen Pfifferling wert - vielmehr schickt sie den Controller "in die Irre". Dein Controller dürfte (nach Deinen Angaben im andern Thread - CKSEL[1:0] = 01) mit 4,8 MHz tickern. Mit andern Fuses allenfalls mit einer der anderen möglichen Frequenzen, die Du mit dem internen Oszillator erreichen kannst: 9,6 MHz, 4,8 MHz, 1,2 MHz, 128 kHz etcetc.
Im anderen Thread wurde schon darauf hingewiesen, dass Du den internen Oszillator per Fuses parameterisieren kannst; dabei sind aber die 4,000 MHz nicht drin. Und Dein Code ist NUR DANN richtig und bringt das gewünschte Ergebnis, wenn diese Angabe "$crystal = .." der tatsächlichen Frequenz des Controllers entspricht.
Übrigens: für den ADC gelten Einschränkungen in der Programmierung des Taktes, der muss zwischen 50 kHz und 200 kHz getaktet werden für gute Wandlungsergebnisse, bei geringen Ansprüchen könnte der Takt schneller sein (die Samplezeit wird dann kürzer). Wie das in Bascom geschieht musste selbst raussuchen, vielleicht macht das Dein "Prescaler = Auto", vielleicht auch nicht.
Lesezeichen