Hallo,
bin heute schon länger am rumtesten an einem Tiny45, wollte mal schnell den ADC anwerfen, naja, war aber nix !
Um den Bezug zu diesem Thread zu finden,
der T45 ist beim ADC_REFMODEL mit 4 angegeben, man sollte da also verschiedene Referenzen auswählen können, das geht aber nicht, Bascom meckert bei jeder Möglichkeit, ausser man lässt es ganz weg, dann wird aber auch VCC verwendet !
Dieser Tiny hat da ein paar Besonderheiten, genauso wie der Tiny25 und der Tiny85 (gibts aber noch nicht, ist aber die gleiche Serie)
Man kann zwar die Referenz direkt in ADMUX einstellen, aber spätestens bei einem GetADC(..) wird das wieder verworfen.
Es gibt da nur die Möglichkeit, im DB nachzusehen welcher Wert die gewünschte Referenz hat, und dies dem GetAdc(.) mitzugeben, als Parameter Offset.
Um den internen Temp-Sensor auszulesen braucht man die interne Referenz von 1.1V, das wäre &H80, und ADC4, da aber der ADC4 eigentlich Kanal 15 ist, muss man das auch so angeben !
Schaut dann so aus:
Code:
$regfile = "ATtiny45.dat"
Config Adc = Single , Prescaler = Auto
' Referenz auf Internal_1.1V, damit mans nicht vergisst, braucht man aber nicht !
Admux = &H80
Start Adc
' Temperaturwert aus ADC holen, Offset auf &H80 wegen Referenz !
Adc4 = Getadc(15 , &H80)
' oder gleich
Adc4 = Getadc(&H8f)
Falls mal jemand danach sucht.
PS:
Hab wegen dem Tiny45 noch ein paar kleinere Bugs gefunden, die hab ich dann aber gleich an MCS gemeldet.
Das sind u.a. die FuseBits EF, und der Chipname wird beim 45er als Tiny25 angezeigt, ist aber nur ein optischer Fehler 
Ja und wegen dem ADC gibts immerhin diesen Workaround.
Lesezeichen