Bonjour,
voulant réaliser le themometre à afficheur nixie bargraph in13 trouvé dans une revue polonaise de juin 2014 à base de at2313 et ds18b20
la mesure s'affiche pendant 0,5 sec et disparait pendant 2 ou plus secondes, l'afficheur montre juste la premiere "barre".
j'ai traduit les 2 pages les plus importantes de l'article : pdf écrit en colonnes, pas évident avec google translate
les fuses du 2313 sont laissés d'origine comme écrit dans l'article intrc8mhz, clkdiv8, bod disable.
la source du pgme en basic (quel compilateur ?) et le fichier hex sont livrés.
y'a-t-il une erreur dans le pgme, comme écrit : en cas d'absence de capteur, le programme relance la recherche d'un capteur 1wire toutes les ? secondes,
on dirait qu'il fait cette opération en continu.
vous trouverez en pj : l'article original schéma, la source en basic avec 2 commentaires de ma part en question et la traduction approximative en français.
quel est le compilateur basic utilisé ?
Merci pour votre aide
10681.pdf
wsadbasic.txt
trad10681.txt
Code:'Analogowy termometr nixie 'Projekt wykona³ Krzysztof Goñka $regfile = "2313def.dat" $crystal = 1000000 'frequence 1 mhz int clock div/8 ? Config Portb.0 = Input Config Portb.3 = Output Config Portd.3 = Output Config 1wire = Pind.3 Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect Portb.0 = 1 Portb.3 = 0 Portb.3 = 1 Dim Temperatura As Word Dim Lsb As Byte Dim Msb As Byte Dim Reszta As Byte Dim Indeks As Byte Dim Pwm As Byte Do If Pinb.0 = 0 Then ' si jp1 mis affichage = 25° Pwm1a = 107 Else Gosub Pomiar If Temperatura > 9 And Temperatura < 45 Then Indeks = Temperatura - 10 Pwm = Lookup(indeks , Wartosci_pwm) Pwm1a = Pwm Else Pwm1a = 0 End If Wait 2 End If Loop End Pomiar: 1wreset If Err = 1 Then Do 1wreset If Pinb.0 = 0 Then Pwm1a = 107 End If Loop Until Err = 0 End If 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Lsb = 1wread() Msb = 1wread() 1wreset Temperatura = Msb Shift Temperatura , Left , 8 Temperatura = Temperatura + Lsb Reszta = Temperatura Mod 16 Shift Temperatura , Right , 4 If Reszta >= 8 Then Incr Temperatura End If Return Wartosci_pwm: Data 8 , 14 , 21 , 28 , 34 , 41 , 48 , 54 , 61 , 68 , 74 , 81 , 88, Data 94 , 101 , 107 , 114 , 121 , 127 , 134 , 141 , 147 , 154 , 161, Data 167 , 174 , 181 , 187 , 194 , 200 , 207 , 214 , 220 , 227 , 234
-----