Jump to content
ELFORUM - Forumul electronistilor

BASCOM


Recommended Posts

Despre BASCOM a vorbit mai mult Danzup, iar in suiectul "Probleme de incepatori" se vorbeste mai mult de C.

Cu bunavointa lui Ole propun sa facem aici o mica "tabara" BASCOM, preferabil Sticky.

Eu ma chinui de ceva timp cu BASCOMul, si , desi Google stie de el, imi indica numai pagini nemtesti.

Nu ma astept sa sara lumea acum cu mici tutoriale sau exemple, dar ...sper sa se adune aici mici exemple de cod, programe simple care marcheaza anumite puncte care se folosesc in mod uzual.

 

Radu

Link to comment

Par exemple...

 

Mama BASCOMului pune la dispozitia publicului pe site-ul lor, o aplicatie "Realtime clock - AN #32". Proiectul e facut pentru familia 8051. Pe mine ma intereseaza sa fac acel ceas cu ATMega32. E ok daca pun segmentii (a, b...g) de pe PORT0 (8051) pe PORTA (atmega32) iar anozii/catozii de pe PORT2 (8051) pe PORTB sau PORTC (atmega32) ? Modificarile in fisierul *.BAS le fac eu.

 

Proiectul este AICI

 

Later edit : Am facut modificarile care am crezut eu de cuviinta in cod. La verificare codul este Ok, dar cand l-am varat in ATMega32 de pe placa de dezvoltare am vazut ca nu se aprinde niciun digit. Pe urma am vazut ca in PDF autorul foloseste afisaj cu Catod Comun, iar au am Anod Comun. Cum se poate modifica asta din soft ?

Link to comment

"Intalnire cu un necunoscut" - Gabriel Ilicenu....sau eu cu mine + BASCOMul

Deci cred ca eu o sa pun intrebarile si tot eu o sa raspund.

 

Pana una-alta pun un mic exemplu.

 

Config Porta = Output

Porta = 255

 

Dim I As Byte

Dim X(16) As Byte

Restore Value_table

 

For I = 1 To 16

Read X(i)

Next

 

Do

For I = 1 To 16

Porta = X(i)

Waitms 250

Waitms 250

Next

Loop

 

End

 

Value_table:

Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78

Data &H00 , &H10 , &H08 , &H03 , &H46 , &H21 , &H06] , &H0E

 

Programul face sa numere pe un digit cu 7 segmente, cifrele de la 0 la 9 iar apoi sa afiseze A, B, C, D, E, F.

De ex, in hex, cifra 5 este &H12, sau A este &H08.

Tabelul de la sfarsitul rpogramului contine valorile in hex a cifrelor de mai sus si a literelor de mai sus.

Link to comment

Par exemple...

Later edit : Am facut modificarile care am crezut eu de cuviinta in cod. La verificare codul este Ok, dar cand l-am varat in ATMega32 de pe placa de dezvoltare am vazut ca nu se aprinde niciun digit. Pe urma am vazut ca in PDF autorul foloseste afisaj cu Catod Comun, iar au am Anod Comun. Cum se poate modifica asta din soft ?

Salut. Nici eu nu sint foarte priceput dar invat din mers. M-am uitat in codul sursa de la ceas si consider ca ptr catod comun ar trebui sa negi toate datele pe care le trimiti afisajului. Respectiv tot ce trimiti la U3 si U4. Ptr aceasta trebuie sa modifici datele din tabela,respectiv cu 192, 249, 164, 176, 153, 146, 130, 248, 128, 144 si ar mai fi cele de la P2= 1, 2, 4, 8, 16 si 32 cu P2=254, 253, 251, 247, 239, 223. Nu stiu daca le-am calculat bine dar ar fi bine sa le verifici si tu. Nu sint nici eu sigur 100% dar personal asa as incerca, ramine sa ne zici tu daca merge.
Link to comment

in principiu, programele realizate in Bascom-51 si Bascom AVR sunt compatibile, cu exceptia modului de definire a porturilor microcontrolerului si a pinilor acestuia.Luand ca exemplu ceasul dorit de yo9hnf, in Bascom-51 porturile pentru segmente sunt reprezentate ca a= P0.0 ... f= P0.7 in Bascom AVR porturile vor fi reprezentate ca a= PORTB.0 ... f= PORTB.7 (totul depinde de care porturi sunt disponibile pe microcontroler).De rest, numai de bine!Bascom AVR este o minune de program si, uneori, si de simulator (dar mai rar, hi).Va astept si cu alte propuneri sau idei.

Link to comment

Limbajul BASCOM nu exista.

BASCOM vine de la BASic COMpiler si este un program care te ajuta sa scrii soft pentru diverse microcontroller-e in limbajul BASIC, BASCOM nu este un limbaj de programare.

 

Mai intai citeste help-urile din BASCOM-AVR. Tutorial mai bun decat acolo e greu sa gasesti.

Trebuie sa ai cunostinte minime despre limbajul BASIC pentru ca asta este limbajul folosit in BASCOM. Daca nu cunosti limbajul BASIC atunci cauta niste lectii introductive de BASIC, pe urma exemplele date in help-ul BASCOM-ului vor fi foarte clare.

In afara de asta e nevoie si de cunostinte despre microcontroller-ul folosit.

 

In final nici nu vei mai pierde vremea sa modifici un program scris pentru alt microcontroller, vei scrie chiar tu ceasul sau orice altceva iti trebuie.

 

Nu va speriati ca nu e foarte greu. Primii pasi sunt mai anevoiosi, pe urma nu va veti mai opri din programat tot felul de minunatii. Garantez ca o sa va placa, spor la treaba!

Link to comment

Limbajul BASCOM nu exista.

BASCOM vine de la BASic COMpiler si este un program care te ajuta sa scrii soft pentru diverse microcontroller-e in limbajul BASIC, BASCOM nu este un limbaj de programare.

 

Mai intai citeste help-urile din BASCOM-AVR. Tutorial mai bun decat acolo e greu sa gasesti.

Trebuie sa ai cunostinte minime despre limbajul BASIC pentru ca asta este limbajul folosit in BASCOM. Daca nu cunosti limbajul BASIC atunci cauta niste lectii introductive de BASIC, pe urma exemplele date in help-ul BASCOM-ului vor fi foarte clare.

In afara de asta e nevoie si de cunostinte despre microcontroller-ul folosit.

 

In final nici nu vei mai pierde vremea sa modifici un program scris pentru alt microcontroller, vei scrie chiar tu ceasul sau orice altceva iti trebuie.

 

Nu va speriati ca nu e foarte greu. Primii pasi sunt mai anevoiosi, pe urma nu va veti mai opri din programat tot felul de minunatii. Garantez ca o sa va placa, spor la treaba!

BASCOM este un limbaj de nivel inalt care are converteste limbajul BASIC in codul hexazecimal acceptat de un microcontroller - microprocesor.

In topic nimeni nu a pomenit de "limbajul" BASCOM, de unde ai scos-o?

Link to comment

Limbajul BASCOM nu exista.

BASCOM vine de la BASic COMpiler si este un program care te ajuta sa scrii soft pentru diverse microcontroller-e in limbajul BASIC, BASCOM nu este un limbaj de programare.

 

Mai intai citeste help-urile din BASCOM-AVR. Tutorial mai bun decat acolo e greu sa gasesti.

Trebuie sa ai cunostinte minime despre limbajul BASIC pentru ca asta este limbajul folosit in BASCOM. Daca nu cunosti limbajul BASIC atunci cauta niste lectii introductive de BASIC, pe urma exemplele date in help-ul BASCOM-ului vor fi foarte clare.

In afara de asta e nevoie si de cunostinte despre microcontroller-ul folosit.

 

In final nici nu vei mai pierde vremea sa modifici un program scris pentru alt microcontroller, vei scrie chiar tu ceasul sau orice altceva iti trebuie.

 

Nu va speriati ca nu e foarte greu. Primii pasi sunt mai anevoiosi, pe urma nu va veti mai opri din programat tot felul de minunatii. Garantez ca o sa va placa, spor la treaba!

BASCOM este un limbaj de nivel inalt care are converteste limbajul BASIC in codul hexazecimal acceptat de un microcontroller - microprocesor.

In topic nimeni nu a pomenit de "limbajul" BASCOM, de unde ai scos-o?

Trebuie sa-mi pun putina cenusa in cap: BASCOM nu este limbaj de nivel inalt ci doar un program de calculator care converteste instructiunile scrise in BASIC - limbaj de nivel inalt.

Pentru userul yo9hnf:

O modalitate de a stabili codurile pentru comanda afisoarelor (fie in BASCOM fie in limbaj de asamblare sau C) este aceea de a face un tabel cu cifrele si in dreptul fiecarei cifre sa treci nivelul logic care aprinde segmentele ce formeaza cifra. Eu unul asa fac si nu am dat gres pana in prezent. Urmatorul pas este sa inserezi codurile binare ale cifrelor in tabloul de date.

Link to comment

Pai tocmai asta era confuzia pe care vreau sa o clarific.

- BASCOM nu este un limbaj de nivel inalt.

- BASCOM este un IDE, adica un pachet de programe care te ajuta sa-ti faci treaba.

- conversia de la un limbaj de nivel inalt la limbaj masina este facuta de compilator.

In cazul lui BASCOM limbajul de nivel inalt se numeste BASIC. Bascom contine si un compilator de BASIC, compilator care traduce instructiunile din limbajul de nivel inalt (BASIC) in limbajul masina pe care il intelege microcontroller-ul (AVR Assembler)

 

Ma bag in vorba neintrebat pentru ca in primul post din subiectul asta se vorbeste in aceeasi propozitie despre BASCOM si C in asa fel incat incepatorii ar putea ramane cu impresia ca ambele sunt limbaje de programare.

- BASCOM este un IDE pentru BASIC.

- C este un limbaj de programare.

Comparatia normala ar fi fost BASCOM cu WinAVR, de exemplu.

- WinAVR este un IDE pentru C.

 

Alt motiv pentru care m-am trezit vorbind este ca am avut impresia ca se doreste un fel de introducere in domeniu, asa ca am vrut sa fie notiunile cat mai clare la inceput de drum.

Link to comment

Depinde cum definesti IDE-ul (Integrated Development Environment).

 

Te rog uita-te aici cum este descris un IDE. Contine editor+compilator(sau interpretor)+debugger+alte tool-uri, adica intreg lantul care creeaza mediul de dezvoltare. Asa l-am considerat si eu.

 

Multa lume foloseste impropriu expresia de IDE pentru a desemna de fapt doar interfata IDE (adica un editor grafic cu butoane care cheama alte tool-uri). Si eu fac asta adesea dar consider ca teoretic nu este corect.

 

De aceea

notepad++ este editor de texte.

WinAVR este un IDE pentru programarea microcontroller-elor AVR in limbajul C.

 

WinAVR nu este (doar) portarea compilatorul AVR-GCC pe windows.

WinAVR contine multe programe portate pe windows, printre care si compilatorul AVR-GCC.

Compilatorul AVR-GCC pe windows se numeste tot AVR-GCC.

AVR-GCC (indiferent de sistemul de operare) este portarea compilatorului GCC pentru microcontroller-e de tip AVR.

 

Oricum, ca sa nu zapacim lumea, tot ce scrie in ultimele posturi nu are legatura cu BASCOM-ul decat pur teoretic. Cred ca mai bine deschidem un topic separat pentru asta.

Link to comment

Revenind ontopic la BASCOM,

intre timp mi-a mai scris un user si a postat aceeasi bucata de cod cu cea de aici, ca nu-i mergea pe atmega8. Ca sa nu patim la fel eu zic sa luam un exemplu concret si o schema clara pe care sa exersam.

 

Ceasul de care se vorbea mai devreme mi se pare un exemplu numai bun.

 

yo9hnf, daca inca n-ai renuntat la idee hai sa facem impreuna cu alti elforumisti interasati un proiect pentru un ceas cu uC AVR si afisaj cu 7.1 segmente cu LED-uri . Vrei?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines