Sari la conținut
ELFORUM - Forumul electronistilor

BASCOM


yo9hnf

Postări Recomandate

If Speeda = 0 And Speedb = 0 And Speedc = 0 And Speedd = 0 Then Reset Portc.0Elseif Speeda >= 1 Then Set Portc.0Elseif Speedb >= 1 Then Set Portc.0Elseif Speedc >= 1 Then Set Portc.0Elseif Speedd >= 1 Then Set Portc.0End If secventa de mai sus este ok? am nevoie ,cand cele 4 viteze care comanda 4 venturi, atunci cind toate ventilatoarele nu se misca deloc PORTC.0 sa fie OFF si cand unu din venturi incepe sa se roteasca ,nu conteaza care, PORTC.0 sa fie ON.circuitul nu-l am facut sa fac proba live ca altfel nu as mai cere ajutor :jytuiyu

Vezi ca BASCOM are si un simulator pe care poti testa programul.
Link spre comentariu

da stiu ca are simulator, am incercat sa-l folosesc dar la felul cum se misca simulatorul.....mai bine intreb! oricum, m-am enervat putin si am facut un circuit de test aseara si functioneaza asa cum vreau!

Link spre comentariu

@Ionut Remus: Daca introduci inatructiunea "$sim" imediat dupa configurarea tipului de microcontroller, frecventa de ceas si stive, simulatorul va actiona mult mai repede (ignora eventualele temporizari).

Link spre comentariu

banuiesc ca stii sa citescti o tensiune asa ca am sa trec mai departe

 

select case w

 

case > 321 ' tensiune 5 volti

set portb.1

casse > 521 ' tensiune 10 volti

set portb.2

reset portb.1

case > 685 ' tensiune 15 volti

set portb.3

reset portb.1

reset portb.2

case > 826 ' tensiune 20 ' volti

set potb.3

reset portb.1

reset portb.2

reset portb.3

case < 140 ' tensiune mai mica de 5 volti

reset portb

end

Ok, in mare parte am inteles cum sta treaba, ma-m mai documentat intre timp, dar totusi nu inteleg ceva de unde iti dau si cum iti dau aceste cifre? ce innseamna ele? spre exemplu: casse > 521; casse 826, cum le calculezi?

 

 

L.E.

Am incercat sa imi fac propriile caractere in Bascom, am reusit insa nu pot face mai mult de 8 caractere diferite, numarotate cu (0-7), am incercat si nu imi rezunoaste de exemplu:

Locate 1 , 10

Lcd Chr(8)

Deflcdchar 8 , 31 , 4 , 4 , 14 , 4 , 4 , 32 , 32

 

Ba mai mult, imi da programu peste cap, ce pot face ca sa imi fac mai mult de 8 caractere personale care sa functioneze?

Link spre comentariu

 

Ok, in mare parte am inteles cum sta treaba, ma-m mai documentat intre timp, dar totusi nu inteleg ceva de unde iti dau si cum iti dau aceste cifre? ce innseamna ele? spre exemplu: case > 521; case 826, cum le calculezi?

 

 

Sunt valori inregistrate de convertorul analog/digital si corespund unor valori de tensiune prestabilite de autorul softului, conform formulei date de ATMEL: Umas=Uref*ADC/1024
Link spre comentariu

o intrebare , poate e ceva stupid....in bascom cum fac sa lucreze toate porturile deodata?nu stiu daca e corect ce intreb de acea exemplific:cum fac sa afiseze pe un lcd ceva text si pe un alt port sa imi clipesca un led....separt imi merge, dar impreuna nu stiu cum sa fac sa mearga,e ceva de inceput , nu trebuie neaparat sa imi corectati codul numai sa imi spuneti cum sa configurez porturile,pun codul aici:$regfile = "m8Adef.dat"$crystal = 10000000$baud = 19200Do Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , _ Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 'configurarea pinilor la lcd pe mcu Dim A As Byte Config Lcd = 20 * 4 'configurarea tipului de lcd Citeste: Deflcdchar 1 , 238 , 255 , 252 , 248 , 252 , 255 , 238 , 224 'caracter Deflcdchar 2 , 238 , 255 , 255 , 248 , 255 , 255 , 238 , 224 'caracter Deflcdchar 3 , 238 , 255 , 255 , 255 , 255 , 255 , 238 , 224 'caracter Cls 'curata ecranul la lcd Cursor Off 'opreste cursorul Home 'aduce acasa Lcd "hello all" 'afiseaza ce este intre ghilimele Wait 3 Lcd Chr(1) Home Lcd " " ; Chr(2) Home Lcd " " ; Chr(3) Home Lcd " " ; Chr(1) Home Lcd " " ; Chr(2) Home Lcd " " ; Chr(3) Home Lcd " " ; Chr(1) Home Lcd " " ; Chr(2) Home Lcd " " ; Chr(3) Home Lcd " " ; Chr(3) Cursor Off Cls Goto CitesteLoopConfig Portd = OutputDdrd.0 = 1Portd.0 = 0Clipeste:Portd.0 = 1Wait 1Portd.0 = 0Wait 1Goto ClipesteEndmultumesc pentru eventuale raspunsuri..

Link spre comentariu

o intrebare , poate e ceva stupid....

in bascom cum fac sa lucreze toate porturile deodata?

nu stiu daca e corect ce intreb de acea exemplific:

cum fac sa afiseze pe un lcd ceva text si pe un alt port sa imi clipesca un led....

separt imi merge, dar impreuna nu stiu cum sa fac sa mearga,

e ceva de inceput , nu trebuie neaparat sa imi corectati codul numai sa imi spuneti cum sa configurez porturile,

 

pun codul aici:

 

 

$regfile = "m8Adef.dat"

$crystal = 10000000

$baud = 19200

 

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , _

Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 'configurarea pinilor la lcd pe mcu

 

Dim A As Byte

Config Lcd = 20 * 4 'configurarea tipului de lcd

 

Citeste:

Deflcdchar 1 , 238 , 255 , 252 , 248 , 252 , 255 , 238 , 224 'caracter

Deflcdchar 2 , 238 , 255 , 255 , 248 , 255 , 255 , 238 , 224 'caracter

Deflcdchar 3 , 238 , 255 , 255 , 255 , 255 , 255 , 238 , 224 'caracter

 

Cls 'curata ecranul la lcd

Cursor Off 'opreste cursorul

Home 'aduce acasa

Lcd "hello all" 'afiseaza ce este intre ghilimele

Wait 3

Do

Lcd Chr(1)

Home

Lcd " " ; Chr(2)

Home

Lcd " " ; Chr(3)

Home

Lcd " " ; Chr(1)

Home

Lcd " " ; Chr(2)

Home

Lcd " " ; Chr(3)

Home

Lcd " " ; Chr(1)

Home

Lcd " " ; Chr(2)

Home

Lcd " " ; Chr(3)

Home

Lcd " " ; Chr(3)

Cursor Off

Cls

Goto Citeste asta ce face?? Nu duce nicaieri!!

Loop

End

Citeste:

Config Portd = Output

Ddrd.0 = 1

Portd.0 = 0

Portd.0 = 1

Wait 1

Portd.0 = 0

Wait 1

end sub

 

 

multumesc pentru eventuale raspunsuri..

Incearca cu modificarile colorate
Link spre comentariu

Cum se scie un cod pentru atmega8, ca la actionarea unui buton cu retinere sa imi afisze pe LCD un mesaj pentru un anumit interval de timp5-10 secunde dupa care sa dispara acel mesaj si sa nu mai apara decat la reactionarea butonului.....Multumesc anticipat...

Link spre comentariu

Scuze, da sunt incepator si posibil sa nu fi explicat bine...da vreau sa stiu cum se scrie un cod in bascom ca la apasarea unui buton (caruia ii este asociat un port oarecare) sa imi afiseze pe display un mesaj timp de 5-10 secunde si butonul sa ramana in continuarea apasat insa mesajul sa dispara.....

Link spre comentariu

ok! asta sa inteles dar vreau sa stiu daca stii macar chestii elementare??? ceea ce vrei tu e oarecum simplu (nu e chiar f. simplu dar...). Si cum adica sa ramana actionat pana la urmatoarea actionare??? daca el ramane deja actionat cum adica sa-l actionezi? stii cum se leaga un display? si la ce anume vrei sa-l folosesti? pentru ca toate astea conteaza!

Link spre comentariu

Este un proiect oarecum personal....Sa explic mai clar...Avem un buton cu doua pozitii ON-OFFPe dysplay este afisat un text....."TEXT-1" (tot acest timp botonul este pe pozitia OFF)Multam butonul pe pozitia ON si pe display este afisat "TEXT-2" pentru 5-10 secunde, dupa care se revine la "TEXT-1", dar fara a aduce butonul pe pozitia OFF...Am reusit sa scriu urmatorul cod, insa nu mai apare "TEXT-1" decat daca revin la pozitia OFFConfig Pind.0 = InputSet Portd.0Text Alias Pind.0 If Text = 0 Then Cls Locate 1 , 5Lcd "Text" Wait 5 End IfCe nu am facut bine? in simulator functioneaza cum am spus ami sus, fara erori...

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