Jump to content


Photo

BASCOM


  • Please log in to reply
538 replies to this topic

#1 OFFLINE   yo9hnf

yo9hnf

    ElForum staff

  • Moderatori
  • 3,072 posts
  • Locatie:BUCURESTI

Posted 08 December 2010 - 05:57 PM

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

Cu_reclama

Cu_reclama
  • Membri

#2 OFFLINE   yo9hnf

yo9hnf

    ElForum staff

  • Moderatori
  • 3,072 posts
  • Locatie:BUCURESTI

Posted 08 December 2010 - 07:02 PM

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 ?

#3 OFFLINE   yo9hnf

yo9hnf

    ElForum staff

  • Moderatori
  • 3,072 posts
  • Locatie:BUCURESTI

Posted 08 December 2010 - 08:54 PM

"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.

#4 OFFLINE   yo9hnf

yo9hnf

    ElForum staff

  • Moderatori
  • 3,072 posts
  • Locatie:BUCURESTI

Posted 08 December 2010 - 09:58 PM

LINKuri UTILE :

-http://home.arcor.de/dirk.milewski/
Alarma cu SMS, Osciloscop cu display de telefon Siemens S65, fisier BMP to display de telefon Siemens S65

-http://bascom-forum....6924f&board=3.0
Forum nemtalau

-http://web.inter.nl.net/users/cpotma/
Variabile, Subrutine si functii, RS-232, LCD, intreruperi etc.

#5 OFFLINE   ywar2

ywar2

    Membru

  • Membri
  • PipPip
  • 585 posts

Posted 08 December 2010 - 10:50 PM

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.

#6 OFFLINE   nico_2010

nico_2010

    Membru avansat

  • Moderatori
  • 1,729 posts
  • Locatie:Bucuresti

Posted 09 December 2010 - 06:02 PM

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.

#7 OFFLINE   RoGeorge

RoGeorge

    Electronist

  • Membri
  • PipPipPipPipPip
  • 2,685 posts
  • Locatie:Bucuresti - Cluj

Posted 09 December 2010 - 08:29 PM

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!

#8 OFFLINE   nico_2010

nico_2010

    Membru avansat

  • Moderatori
  • 1,729 posts
  • Locatie:Bucuresti

Posted 09 December 2010 - 11:08 PM

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?

#9 OFFLINE   vasile eugen

vasile eugen

    Membru avansat

  • Membri
  • PipPipPipPip
  • 2,140 posts
  • Locatie:Loc.Sarmasag Jud.Salaj

Posted 10 December 2010 - 01:14 AM

de pe acest sait am luat mai multe exemple,doar ca trebuie sa fi logat
http://www.edaboard....hread83221.html
http://www.edaboard....read173723.html

#10 OFFLINE   nico_2010

nico_2010

    Membru avansat

  • Moderatori
  • 1,729 posts
  • Locatie:Bucuresti

Posted 10 December 2010 - 09:51 AM

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.

#11 OFFLINE   RoGeorge

RoGeorge

    Electronist

  • Membri
  • PipPipPipPipPip
  • 2,685 posts
  • Locatie:Bucuresti - Cluj

Posted 10 December 2010 - 10:30 AM

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.

#12 OFFLINE   godFather89

godFather89

    Membru

  • Membri
  • PipPip
  • 816 posts
  • Locatie:Timisoara

Posted 10 December 2010 - 05:04 PM

Pai tocmai asta era confuzia pe care vreau sa o clarific.
- WinAVR este un IDE pentru C.


De fapt, WinAVR este portarea compilatorului GCC-AVR pe windows. El vine cu notepad++ (parca) pe post de IDE sau poate fi folosit cu alte IDE-uri.

#13 OFFLINE   RoGeorge

RoGeorge

    Electronist

  • Membri
  • PipPipPipPipPip
  • 2,685 posts
  • Locatie:Bucuresti - Cluj

Posted 10 December 2010 - 06:25 PM

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.

#14 OFFLINE   RoGeorge

RoGeorge

    Electronist

  • Membri
  • PipPipPipPipPip
  • 2,685 posts
  • Locatie:Bucuresti - Cluj

Posted 10 December 2010 - 09:57 PM

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?

Cu_reclama

Cu_reclama
  • Membri

#15 OFFLINE   godFather89

godFather89

    Membru

  • Membri
  • PipPip
  • 816 posts
  • Locatie:Timisoara

Posted 11 December 2010 - 12:12 PM

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.

Da, ai dreptate. Mea culpa!




2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users