J'ai continué mon travail sur STM8 Tiny BASIC pour l'améliorer. Cette révision consiste simplement en la continuation de la modification de la machine virtuelle pour améliorer sa performance. Ce changement de modèle d'exécution a entraîné son lot de bogues régressifs. J'ai corrigés tous ceux qui se sont manifestés lors de mes tests. Maintenant tous les programmes dans le répertoire BASIC fonctionnent correctement. Suivre le lien suivant pour télécharger la dernière révision.
dépôt du projet.
Démonstration conversion de la lecture ADC en voltage
Le programme suivant démontre comment faire une lecture analogique et la convertir en voltage. Bien que Tiny BASIC ne supporte que les entiers il est tout fait possible de convertir la lecture en voltage avec 3 décimales fractionnaires. Le voltage de référence est de 3,3 volts et puisque qu'il s'agit d'un convertisseur à 10 bits la lecture maximale est de 1023.
1 ADC.TO.DEC
2 ' CONVERT ADC READING TO 3 DIGITS DECIMAL
10 CONST VREF=33,ADC.RES=10240
14 ADCON 1
20 DO
30 LET V=ADCREAD(0)
40 ? char(27);"c";V,; :GOSUB CONVERT
50 PAUSE 50:GET K : UNTIL K
60 ADCON 0
90 END
99 ' D digit to print {0..9}
100 PRT.DIGIT
110 ? D;CHAR(8);
120 RETURN
199 FRAC.DIGIT' get next digit from remainder R
200 LET R=R*10, D=R/ADC.RES,R=R%ADC.RES
210 RETURN
299 CONVERT ' ADC READ VALUE V
300 LET D=V*VREF/ADC.RES, R=V*VREF%ADC.RES
310 GOSUB PRT.DIGIT:?".";
320 GOSUB FRAC.DIGIT: GOSUB PRT.DIGIT
330 GOSUB FRAC.DIGIT: GOSUB PRT.DIGIT
340 GOSUB FRAC.DIGIT: GOSUB PRT.DIGIT
350 ?
360 RETURN
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.