Tableau de constantes sous Bascom...

Lesquels choisir ? Comment les utiliser ?

Postby pascal-tours » Tue Dec 10, 2013 12:00 am

Bonjour,
Je cherche à déclarer un tableau de constantes en Flash pour une mesure de température avec une CTN sur un Atmega8.
Je n’ai pas trouvé comment faire (j’ai peut être mal cherché !), à savoir :
Comment on initialise le tableau et comment se fait l’accès aux données ?
Ci-joint une copie de mon code qui n’est pas couronné de succès…

Merci pour votre aide.
@+
Pascal
Attachments
temp.jpg
pascal-tours
 
Posts: 37
Joined: Mon Jan 20, 2014 8:05 am

Postby ymasquel » Tue Dec 10, 2013 12:00 am

Bonjour Pascal,

Je ne pratique pas le BASCOM mais il me semble que dans de nombreux BASICs l'accès à des tables de ce type se fait par l'instruction LOOKUP.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3392
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby gérard » Tue Dec 10, 2013 12:00 am

J'utilise Proton+ pour PIC.
Il existe une instruction pour lire des données en flash.
Attachments
Capture-d--cran-2013-12-10---21.40.52.png
gérard
 
Posts: 333
Joined: Fri Jan 17, 2014 4:36 pm

Postby pascal-tours » Tue Dec 10, 2013 12:00 am

Bonsoir,

Effectivement, j'explore les deux pistes...
Merci à vous deux.
Pascal
pascal-tours
 
Posts: 37
Joined: Mon Jan 20, 2014 8:05 am

Postby jeanpierre » Thu Dec 12, 2013 12:00 am

voici comment j'utilise les data( constantes) en effet c'est avec les instructions lookupxx(A,B) sachant que A démarre de zéro et non de un.

Bon courage
JP

dans le programme :
dans la boucle principale
Stringdow = Lookupstr(dow , Datadays)
Stringmonth = Lookupstr(_month , Datamonth)


a la fin du programme :
après les sub et functions...

Datadays:
Data " " , "LUNDI" , "MARDI" , "MERCREDI" , "JEUDI" , "VENDREDI" , "SAMEDI" , "DIMANCHE" 'one adds " " to start with idx=1
Datamonth:
Data " " , "JANVIER" , "FEVRIER" , "MARS" , "AVRIL" , "MAI" , "JUIN" , "JUILLET" , "AOUT" , "SEPTEMBRE" , "OCTOBRE" , "NOVEMBRE" , "DECEMBRE"
Daymonth:
Data 0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Postby jeanpierre » Thu Dec 12, 2013 12:00 am

tu remarquera la chaine vide ou le "0" en tête des data
pour démarrer à 1

les data doivent obligatoirement être placés en fin de programme.

JP
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Postby pascal-tours » Fri Dec 13, 2013 12:00 am

Bonjour Jean pierre,

Je fais un test ce week-enk, merci pour ton aide.
A bientôt.
Pascal
pascal-tours
 
Posts: 37
Joined: Mon Jan 20, 2014 8:05 am

Postby pascal-tours » Mon Dec 16, 2013 12:00 am

Bonsoir JP,

C’est bon mon tableau fonctionne, j’ai compris d’où venait mon erreur.
Merci a tous pour votre aide.
A+
Pascal
pascal-tours
 
Posts: 37
Joined: Mon Jan 20, 2014 8:05 am

Postby treels » Mon Dec 16, 2013 12:00 am

j’ai compris d’où venait mon erreur.
Merci a tous pour votre aide.


Ce serait peut-être de partager, non ?...
Qui ne supporte la critique ne progressera point.
User avatar
treels
 
Posts: 807
Joined: Fri Jan 17, 2014 4:34 pm

Postby jeanpierre » Tue Dec 17, 2013 12:00 am

@ Treels,

Extrait de l'aide de Bascom, Le Basic Bascom est très proche du QuickBasic de Microsoft

"The DATA statements must not be accessed by the flow of your program because the DATA statements are converted to the byte representation of the DATA.

When your program flow enters the DATA lines, unpredictable results will occur.
So as in QB, the DATA statement is best be placed at the end of your program or in a place that program flow will no enter."

Donc j'avais signalé que les data doivent être placés en fin de programme, je pense que c'est le PB

JP
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Next

Return to Microcontrôleurs & microprocesseurs

Who is online

Users browsing this forum: No registered users and 2 guests