begin process at 2013 05 26 09:00:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

code en basic vers c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

code en basic vers c

mardi 14 août 2012 à 14:12:32 | code en basic vers c

gogi000

bonjour,

y aurait-il moyen de pouvoir transformer un code écrit en basic vers le c?

je dois écrire une programmation d'un pic en c
mais j'ai trouver un code déja écris en basic, le soucis est de le retranscrire en c.

comme par exemple:
as byte par rapport en c ?
as word?
dim = define ou int?
et surtout le

For i = 0 to PosDecPoint+2
DisplayString[i] = SensorString[i]
Next i
par rapport au c ?

dont voici la programmation:

program IR_Thermometer
dim LCD_RS as sbit at RB2_bit
LCD_EN as sbit at RB3_bit
LCD_D4 as sbit at RB4_bit
LCD_D5 as sbit at RB5_bit
LCD_D6 as sbit at RB6_bit
LCD_D7 as sbit at RB7_bit

LCD_RS_Direction as sbit at TRISB2_bit
LCD_EN_Direction as sbit at TRISB3_bit
LCD_D4_Direction as sbit at TRISB4_bit
LCD_D5_Direction as sbit at TRISB5_bit
LCD_D6_Direction as sbit at TRISB6_bit
LCD_D7_Direction as sbit at TRISB7_bit

' End LCD module connections

' Variable definitions

dim SensorLow as byte ' Raw temp. low byte
SensorHigh as byte ' Raw temp. high byte
SensorRaw as word ' Raw temp. word
SensorRawCur as word ' Current raw temp.
SensorRawMax as word ' Max. raw temp.
SensorRawMin as word ' Min. raw temp.
Sensor as float ' Real temp (floating point)
SensorString as string[9]
DisplayString as string[9]
PEC as byte ' Control byte (read but not used)
com as byte ' MLX90614 command
PosDecPoint as byte ' Decimal point position
i as byte

' Procedure definition

' Read Temperature From MLX90614
' Input : com specify temp. to read
' Output : raw temp as a word

Sub procedure Read_temp(dim com as byte)

I2C1_Start() ' issue I2C start signal
I2C1_Wr(0x00) ' send address (device address + W)
I2C1_Wr(com) ' send command
I2C1_Repeated_Start() ' issue I2C signal repeated start
I2C1_Wr(0x01) ' send address (device address + R)
SensorLow = I2C1_Rd(1) ' Read temp. low byte (acknowledge)
SensorHigh = I2C1_Rd(1)' Read temp. high byte (acknowledge)
PEC = I2C1_Rd(1) ' Read PEC (not used) (acknowledge)
I2C1_Stop() ' issue I2C stop signal
SensorRaw = SensorLow + (SensorHigh << 8) ' Build temp. word

End sub

' Convert raw data in SensorRaw
' to displayable string in DisplayString

Sub procedure Convert_raw

Sensor = SensorRaw * 0.02 - 273.15 ' Raw temp to Celsius
FloatToStr (Sensor, SensorString) ' Float to string
PosDecPoint = Strchr (SensorString,".") ' Search for dec. point
For i = 0 to PosDecPoint+2 ' Limit display to two digits
DisplayString[i] = SensorString[i] ' after decimal point
Next i
DisplayString[PosDecPoint+3]= ""
DisplayString = DisplayString + " C"

End sub

' Main Program

main:

' Initialize I/O

PORTB = 0
TRISB = 0 ' All PORTB lines as output
ADCON1 = 0x0F ' Configure AN pins as digital I/O

' Initialize LCD display

Lcd_Init() ' Initialize Lcd
Lcd_Cmd(_LCD_CLEAR) ' Clear display
Lcd_Cmd(_LCD_CURSOR_OFF) ' Cursor off

' Initialize Min and Max object temp.

SensorRawMax = 0
SensorRawMin = 0xFFFF

' Initialize SMBus

I2C1_Init(100000) ' I2C/SMBus Clock speed 100 kHz
SETBIT (SSPSTAT,6) ' Force MSSP in SMBus mode

while true

Read_temp (0x06) ' Read ambiant temp.

Convert_raw

Lcd_Out(1,1,"T Amb. : ") ' Write ambiant temp in first row
Lcd_Out(1,10,DisplayString)

Read_temp (0x07) ' Read object temp.

SensorRawCur = SensorRaw ' Make obj. temp. current temp.

If SensorRawCur > SensorRawMax Then ' Is current temp. higher than max. temp.
SensorRawMax = SensorRawCur ' Make max. temp. equal current temp.
End if

If SensorRawCur < SensorRawMin Then ' Is current temp. lower than min. temp.
SensorRawMin = SensorRawCur ' Make min. temp. equal current temp.
End if

Convert_raw

Lcd_Out(2,1,"T Obj. : ") ' Write object temp in second row
Lcd_Out(2,10,DisplayString)

SensorRaw = SensorRawMax
Convert_raw

Lcd_Out(3,1,"T Max. : ") ' Write Max object temp in third row
Lcd_Out(3,10,DisplayString)

SensorRaw = SensorRawMin
Convert_raw

Lcd_Out(4,1,"T Min. : ") ' Write Min object temp in fourth row
Lcd_Out(4,10,DisplayString)

Delay_ms (1000)

wend

end.

en attendant une réponse
merci.
mardi 14 août 2012 à 15:47:23 | Re : code en basic vers c

ghuysmans99

Membre Club
Réponse acceptée !
Code C/C++ :
#define unsigned char byte
#define unsigned short word
/*Dim x as byte */ byte x;
/*Dim y as word */ word y;
/*For i = 0 To y*/ for (i=0; i<=y; i++) {
DisplayString[i] = SensorString[i]; //juste un ; en plus
/*Next i*/ }



VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
jeudi 16 août 2012 à 08:22:58 | Re : code en basic vers c

gogi000

merci de ta réponse

et pour le reste du code est-ce que ce n'est qu'une retransription litéraire en c?

facilement traduisible?

si tu vois ce que je dis?

merci
jeudi 16 août 2012 à 10:28:14 | Re : code en basic vers c

ghuysmans99

Membre Club

ce n'est qu'une retransription littéraire en c?

Littérale, plutôt ?
Non, des trucs comme ça DisplayString = DisplayString + " C" --> strcat(DisplayString, " C");
Une ligne que je ne sais pas traduire en C : dim LCD_RS as sbit at RB2_bit

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question


Cette discussion est classée dans : temp, byte, at, lcd, sbit


Répondre à ce message

Sujets en rapport avec ce message

problème lecture de données avec Ds3231 [ par kimouelectronique ] Bonjour, je programme avec MikroC, j'ai essayer d'afficher l'heure et la date à partir du composant I²C:DS3231, le résultat est visualisé sur un affic programme pour le calcul et l'affichage de la fréquence cardiaque [ par lipooo ] bonjour tout le monde, j'ai un programme en C qui permet de calculer la fréquence cardiaque et l'affiche sur un lcd(2*16) [code=cpp]const char TIMER probleme de ddéclaration des timers et des interruptions sous mikro C [ par lipooo ] slt tout le monde, je vous présente mon projet qui permet la détermination de la fréquence d'un signal d'entrée analogique par un pic 16f877, le résu programmer en c afficheurlcd [ par kholiyos ] kholiyos[^^sad1] je suis en train de faire un programme en qui va afficher un message sur l'afficheur à la suite de coupure de la broche c0 le problém DnsQuery, hook et detours [ par wxccxw ] Bonjour, j'ai ecrit une dll que j'injecte dans IE ou firefox pour savoir l'host qu'il demande a charger afin de filtrer. voici donc le code [code=cp communication RS232 sur MikroC [ par zguiderchawky ] bonjour à tous j'ai un problème de communiquer le port DSUB9 avec mon PIC le 16F877 via MAX232 sur les port RC6 et RC7. j'utilise le compilateur Mikr effacement d'une caractère d'un afficheur lcd [ par marmouraa ] slt, je veux savoir comment programmer une touche d'une clavier matriciel 12 touches pour qu'elle me permet d'effacer la dernière lettre écrite sur un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales