Sari la conținut
ELFORUM - Forumul electronistilor

BASCOM


yo9hnf

Postări Recomandate

Am scris un cod pntru doi senzori de temperatura care sa comande fiecare cate un led.....sa il aprinda sa spunem la o temperatura mai mare de 35 grade...

Insa problema in simulare sta asa:

Daca primul senzor trece de tempaeartura de 35 grade totul functioneaza ok, dar daac primul senzot nu trece de 35 grade, al doile senzor nu functioneaza, poate urca si pana la 150 grade ca tot nu aprinde ledul decat dupa ce primul senzor atinge temperatura minima la care se aprinde ledul ...35 grade...

Ce nu am facut bine?

Mai jos afisez codul....

P.S. Nu stiu cum faceti voi sa va apara codul in chenar....

 

 

 

$sim

$regfile = "m8def.dat"

$crystal = 1000000

$hwstack = 32

$swstack = 10

$framesize = 40

 

Config Portd.2 = Output

Config Portd.3 = Output

 

 

 

Dim Adcv As Word , Volt As Single

 

Const Dif = 5 / 1024

Const Volt_div = 1

Config Adc = Single , Prescaler = Auto , Reference = Avcc

 

 

Start Adc

Do

 

Adcv = Getadc(0)

Waitms 50

'Calcul

Volt = Adcv * Dif

Volt = Volt / Volt_div

 

Print Adcv

 

Select Case Adcv

 

Case 0 To 72:

Portd.2 = 0

Print

 

Case 73 To 1023:

Portd.2 = 1

Print

 

End Select

 

 

Adcv = Getadc(1)

Waitms 50

'calcul

Volt = Adcv * Dif

Volt = Volt / Volt_div

 

Print Adcv

 

Select Case Adcv

 

Case 0 To 72:

Portd.3 = 0

Print

 

Case 72 To 1023:

Portd.3 = 1

Print

Loop

 

 

End Select

End Select

 

 

Am reusit sa depistez....

Comanda cea subliniata trebuia scrisa unde am scris cu albastru.

Link spre comentariu

Ti-am corectat putin codul.

 

Pentru a "pune codul in chenar":

1. Copiezi codul.

2. Apesi "Code"

3. Iti apare ["code"] | ["/code"] dar fara ghilimele :),

4. Si intre ["code"] | ["/code"], unde iti apare cursorul "lipesti" codul cu paste.

 

 

'$sim$regfile = "m8def.dat"$crystal = 1000000          '$crystal = 8000000      'folosesti quartz extern sau intern?$hwstack = 32$swstack = 10$framesize = 40Config Portd.2 = OutputConfig Portd.3 = OutputDim Adcv0 As Word , Volt As SingleDim Adcv1 As WordConst Dif = 5 / 1024Const Volt_div = 1Config Adc = Single , Prescaler = Auto , Reference = AvccStart AdcDoAdcv0 = Getadc(0)'Waitms 50'Calcul'Volt = Adcv0 * Dif          'vad ca aceste calcule nu le folosesti in acest cod'Volt = Volt / Volt_div Select Case Adcv0  Case 0 To 72:    Portd.2 = 0  Case 73 To 1023:    Portd.2 = 1 End SelectAdcv1 = Getadc(1)'Waitms 50'calcul'Volt = Adcv1 * Dif'Volt = Volt / Volt_div Select Case Adcv1  Case 0 To 72:   Portd.3 = 0  Case 73 To 1023:   Portd.3 = 1 End SelectLoopEnd
Link spre comentariu

Multumesc iulian...functioneaza, dar functiona si al meu cu toate ca nu am folosit toate calculele, am spus ca nu e necesar.....dar o sa folosesc asa cum ai modificat.Folosesc quartu intern.

Link spre comentariu

Ai folosit aceeasi variabila "Adcv" pentru ADC0 si ADC1. In cazul tau daca folosesti doi senzori, unul pe ADC0 si celalalt pe ADC1, ca sa ai rezultate corecte, trebuie sa lucrezi individual cu fiecare port ADC. De aceea ti-am retusat putin codul.

Link spre comentariu

Salutare.Am avut un cod cu care am incercat dinplai grafic PG240128A si nu l-am salvat.Am facut acest cod simplu din exemple,dar nu afiseaza nimic.$regfile = "m32def.dat" ' specify the use $crystal = 6000000Config Graphlcd = 240 * 128 , Dataport = Portd , Controlport = Portb , Fs = 6 , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 5 , Mode = 6 Cursor OffClsLcd "Vasile Eugen"Waitms 100trebuie trecut ceva.Porturile D0-7 sunt legate pe portul D.Iar restul ca pe port B.

Link spre comentariu

Salutare.Am avut un cod cu care am incercat dinplai grafic PG240128A si nu l-am salvat.Am facut acest cod simplu din exemple,dar nu afiseaza nimic.$regfile = "m32def.dat" ' specify the use $crystal = 6000000Config Graphlcd = 240 * 128 , Dataport = Portd , Controlport = Portb , Fs = 6 , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 5 , Mode = 6 Cursor OffClsLcd "Vasile Eugen"Waitms 100trebuie trecut ceva.Porturile D0-7 sunt legate pe portul D.Iar restul ca pe port B.

Nu ai dat o locatie unde anume sa afiseze textulpune spre exemplu (Locate 1,2) fara paranteze, intre Cls si LCD "Vasile Eugen" si comanda End la sfarsit...
Link spre comentariu

Nu merge.Am incercat mai multe variante.regfile = "m32def.dat" ' specify the use $crystal = 16000000 $baud = 9600'$lib "glcd1.lib"$hwstack = 100 ' Hardwarestack$swstack = 54 ' Softwarestack$framesize = 64 ' FramsizeConfig Graphlcd = 240 * 128 , Dataport = Portd , Controlport = Portb , Fs = 6 , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 5 , Mode = 6 Cursor OffClsLocate 1,2Lcd "Vasile Eugen"Waitms 100Endacesta am mai testat asa.

Link spre comentariu

Inceasca asta, eu am simulat asa si functioneaza.

 

'$sim$regfile = "m32def.dat"                                    ' specify the use $crystal = 1000000Config Graphlcd = 240 * 128 , Dataport = Portd , Controlport = Portb , Fs = 6 , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 5 , Mode = 6               Cursor OffClslocate 1,14Lcd "Vasile Eugen"Wait 1End
Link spre comentariu

Folosesti pentru Fs si Mode acelasi port.Incearca sa folosesti un port individual pt Fs de exemplu. Pana acum nu m-am jucat real cu lcd-uri grafice.Incearca si asta de test.

Link spre comentariu

Folosesti pentru Fs si Mode acelasi port.Incearca sa folosesti un port individual pt Fs de exemplu. Pana acum nu m-am jucat real cu lcd-uri grafice.Incearca si asta de test.

Am incercat si cu porturi separate si pe acelasi por si acele intrari la masa.
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări