samedi 22 avril 2023

STM8 Tiny BASIC V3.2R1

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.