[Programmation] thermometre in13 prgme basic attiny2313A
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

thermometre in13 prgme basic attiny2313A



  1. #1
    elektrax

    thermometre in13 prgme basic attiny2313A


    ------

    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

    -----
    Dernière modification par Antoane ; 20/11/2018 à 08h35. Motif: Intégration du code au corps du message
    merci

Discussions similaires

  1. thermomètre
    Par suhail dans le forum Chimie
    Réponses: 2
    Dernier message: 06/10/2013, 10h00
  2. transfert GW basic vers basic ou visuel basic
    Par jean593 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 21/05/2010, 12h08
  3. Thermomètre à mercure VS thermomètre à gaz parfait
    Par invitef1881787 dans le forum Physique
    Réponses: 7
    Dernier message: 14/08/2008, 16h21
  4. Thermomètre
    Par invite06c01aec dans le forum Électronique
    Réponses: 4
    Dernier message: 10/12/2007, 22h13
  5. Basic ? Visual Basic ?
    Par invite1e5c24bd dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 16/10/2006, 14h15
Découvrez nos comparatifs produits sur l'informatique et les technologies.