# Cits ... >  kā sākt mācīties programmēt

## kamis

līdz šim ar mikrokontrolieriem krāmējies neesmu bet gribēt iemācītes programēt.
ar ko man sākt un kas man tam procesam ir nepieciešams?

noteikti vispirms vajag pie datora pieslēdzmu pic programatoru  ::  pirkt gatavu vai taisīt pašam?
vispirms varētu uztaisīt kādas 10 skrienošas diodes

----------


## Epis

Ja vari tad labāk protams nopērc gatavu plati ar to Pic jau salodētu tā varēsi uzreiz reāli pārbaudīt un iemēģināt mikreni,  bet to mikreni (kodu rakstīšanu) var arī normāli iemēģināt programmas simulātorā (debugerī), bet ja sāksi ņemties ar simulātoru un reālo izmēģnāsānu atliksi uz vēlāku laiku tad sanāks tā kā man agrāk kad tad kad kods gatavs reāli nekas neiet (ne jau tapēc kad kods slikti uzrakstīts, bet tapēc kad Sūdīgi viss salodēts! un visādas citas problēmas (zemūdens akmeņi), apskaties kā es CĪNIJOS ar Atmegas8 palaisānu  ::  
beigās pie dzīvības dabūju  ::

----------


## Vinchi

Iesākumam labāk ir paņemt gatavu programmatoru. Tam lieliski piemēroti ir:


K8076



K8048

Sākumā neiesaku pašam taisīt programmatoru, to varēsi darīt kad jau būsi kaut cik iebraucis visā un zināsi ko īsti vēlies. Savādāk mocīsies tā pat kā Epis ar ATmega8 programēšanu.

----------


## kamis

> Iesākumam labāk ir paņemt gatavu programmatoru.


 paldies ka titeici tacu tur ir divi grūti izvēlēlēties kādi ir to plussi nu mīnusi

tik tālu man pašam skaidrs ka jāpērk programmators 
no sākuma gribētos uztaisīt kādas skrejošās diodes lai saprastu kā tas viss strādā
nav kādam kāda shēma ar ko sākt

----------


## Vinchi

Domāju ka viss piemērotākais tev būs otrais variants, jo uz plates jau ir slēdži un gaismas diodes.  Varēsi būt drošs ka shēma ir pareiza.

----------


## GTC

> līdz šim ar mikrokontrolieriem krāmējies neesmu bet gribēt iemācītes programēt.
> ar ko man sākt un kas man tam procesam ir nepieciešams?
> 
> noteikti vispirms vajag pie datora pieslēdzmu pic programatoru  pirkt gatavu vai taisīt pašam?
> vispirms varētu uztaisīt kādas 10 skrienošas diodes


 Man arī nav nācies, bet projektu, kuru pašreiz būvēju, būs mepieciešams ''nošūt'' vairākus PIC.
Domāju pats uzbūvēt šādu ''šuvēju'':
http://m.bareille.free.fr/mbpicprommer/mbpicprom.html

----------


## kamis

> Domāju ka viss piemērotākais tev būs otrais variants, jo uz plates jau ir slēdži un gaismas diodes.  Varēsi būt drošs ka shēma ir pareiza.


 varbūt uztaisīt pašam neizskatās sarežģīti kā tam GTC

pieņemsim ka man ir tas programmators ko man ar viņu darīt

----------


## Vinchi

Uztaisīt programmatoru jau nav problēma bet ja nepadosies kaut kas tad nesapratīsi vai esi ielaidis kļūdu kompilatorā vai arī problēma kompilējot.

Vai pieproti vismaz kādas programmēšanas valodas sintaksi kaut nedaudz?

1. Vajadzētu zināt programmēšanas pamatus.
2. Apgūt kādu kompilatoru
3. Apgūt mikrokontrolera arhitektūru.

Un domāju kad tikai pēc visa šitā ir nepieciešams programmators.
Vieglāk ir mācīties no jau uztaisītiem projektiem kur ir shēma un source, tad vari viss kaut ko mainīt un eksperimentēt.

----------


## kamis

> 1. Vajadzētu zināt programmēšanas pamatus.
> 2. Apgūt kādu kompilatoru
> 3. Apgūt mikrokontrolera arhitektūru.
> 
> Un domāju kad tikai pēc visa šitā ir nepieciešams programmators.
> Vieglāk ir mācīties no jau uztaisītiem projektiem kur ir shēma un source, tad vari viss kaut ko mainīt un eksperimentēt.


 kri ir infotmācija par progarmmēšanas pamatiem kompilatoriem un arhitektūru

----------


## Velko

> kri ir infotmācija par progarmmēšanas pamatiem kompilatoriem un arhitektūru


 Neesi nekad neko programmējis? Nja - daudz ko apgūt... (pat grūti iedomāties tādu situāciju, kad jau kādus 12 gadus ir programmēts)

Par programmēšanu vispār - varbūt noder šis (tas ir priekš PC, bet pamatideja nemainās).

Kompilators - visdrīzāk paša Microchip ražojums.

Arhitektūra - konkrētā čipa datasheetā var daudz ko uzzināt  :: 

PS. Pats esmu AVR piekritējs, tā ka daži mani ieteikumi var nebūt optimāli  ::

----------


## kamis

nav izdotas kādas grāmatas par programēšanas pamatiem

----------


## Velko

> nav izdotas kādas grāmatas par programēšanas pamatiem


 Par pašiem pamatiem nāk prātā: Martuzāns B. "Kā Pēcis Beisikāns Maiju Saprātiņu programmēt mācīja". - R.:Zinātne, 1986. 

Pats no tādas pamatus apguvu  :: . Nezinu tikai, kur tagad tādu izrakt. Bibliotēkā varbūt...

----------


## Vinchi

Pats programēt sāku mācīties Turbo pascal. Domāju ka vēl joprojām tas ir ideāli piemērots.

Varu ieteikt materiālus no kuriem es mācījus. Neklātienes Programētāju Skola

----------


## kamis

a kur to programmu rakstīt WORD un kā likt viņai darboties

----------


## marizo

nē, word labāk neraksti. Raksti notepadā vai uzreiz Turbo Pascal. Un palaist/kompilēt to programmu arī var TP.

----------


## kamis

> Turbo Pascal. Un palaist/kompilēt to programmu arī var TP.


 a kur viņus atrast

----------


## Velko

Turbo Pascal 5.5 Borland dod bar brīvu. 7.0 versija (pēdējā un populārākā) gan tāda nav, tā ka oficiāli jamo downloadēt nevar. Neoficiāli - Google atgriež lielu listi, ja meklē "Turbo Pascal Download". Protams, vai tajos linkos nav kas lieks un kaitīgs pateikt nevar, tā ka use on your own risk  ::  

Kā brīvu un svaigāku alternatīvu varu ieteikt FreePascal.

----------


## kamis

gribu uztaisīt robotu http://elm-chan.org/works/ltc/report.html
kad robots gatavs laikam cik sapratu jātaisa programatra bloks 
http://elm-chan.org/works/avrx/report_e.html#AVRSS
kad salikšu to vissu kopā man nav skaidrs kur likt šito kodu http://elm-chan.org/works/avrx/avrdude.conf.txt 
un kur ierakstīt ATMEGA8 programmu

----------


## Epis

Man liekas kad vienkaršāk sākumā būtu iemācītes assembler valodu (mašīnkods) un darboties ar AVRstudio 4 un to asm kodu ieprogrammēt iekš mikrenes vai arī simulātorā debuggerī caur soļiem iziet tad vareši redzēt kā procesorā instrukcijas izpildās un kā tie  biti rģistros mainās  un pēc tam vai pāriet uz augstāka līmeņa programmēšana valodām kā C utt.. 

ja vaig kādu pamācību tad var pārkopēt no draugiem.lv tur es un vēlviens cits dalībnieks mēģinājām izskaidrot asm pamatu pamatus (ar piemēriem) vienam, kas baigi gribēja iemācītes programmēt, tie pamatu pamati ir ļoti vienkārši. ja vaig pasaki un es šeit ieopēšu to tektsu jo nav jēga rakstīt no jauna ja jau vienreiz tas ir uzrakstīts. 
kas zin varbūt kad tu uzreiz visu sapratīsi un varēsi to līnij robotu ātri uzprogrammēt  ::

----------


## kamis

ar turbo pascal 5.5 uzinstalēšanu bija problēmas viņš pieprasija utiliets kuras tur nebija

atradu turbo pascal 7 to uzinsalēju bez problēmām 
ja kādam vajag atradu te http://www.simonhuggins.com/courses/pro ... /download/

nesaprotu kā to programu no turbo pascal dabūt AVR 
robotam programma jau dota bet nesaprotu kā to dabūt tajā AVR caur laikam šito http://elm-chan.org/works/avrx/report_e.html#AVRSS

----------


## kamis

man nezkapēc neizdodas šī komanda
Var x,y: Integer; {tiek nodefinēti visi programmā izmantotie mainīgie un to tipi} 

vai kās nezin kā to uzrakstīt parizi

----------


## janispu

> gribu uztaisīt robotu


 Pēdējo nedēļu reklāmas iespaidā, kā skatos ar robotiem saslimusi puse valsts. Tomēr, veidot robotu nav tik pat vienkārši kā uzsmērēt sviestmaizi.
Par tēmu. Sāc vispirms ar ko vienkāršāku: pēc noteikta algoritma mirgojošas lampiņas, tastatūra, kāds/kādi interfeisi, kāds sensors u.t.t. Pirms ķerties pie tik nopietna projekta, kā robots, vispirms ir jāapgūst kontrolieris. tas, protams, ir mans subjektīvs viedoklis.

----------


## GuntisK

> Sāc vispirms ar ko vienkāršāku: pēc noteikta algoritma mirgojošas lampiņas, tastatūra, kāds/kādi interfeisi, kāds sensors u.t.t. Pirms ķerties pie tik nopietna projekta, kā robots, vispirms ir jāapgūst kontrolieris. tas, protams, ir mans subjektīvs viedoklis.


 Pilnībā piekrītu-vienmēr ir jāsāk no kā vienkāršāka. Atkārtot kāda cita cilvēka darbu nav interesanti un ja grib pats no nulles iesākt taisīt robotu, tad tur ir diezgan spēcīgi jāpadomā pie koda...

----------


## kamis

es uzskatu ka robots nav grūti uztaisāms ja vissa informācija par robotu diezgan smalki kā ar karoti ielikta mutē

interesanti vai neinteresanti tas katram subjektīvi man arī pēc norādījumiem taisīt būs interesanti

man nav skaidrs - kad uztaisīšu šito http://elm-chan.org/works/avrx/report_e.html#AVRSS un piespraudīšu viņam robotu un datoru caur kādu programmu man viņā jāievada dotaiā programma

----------


## GuntisK

Programmējas tas AVRs caur ISP. Tev tikai tā vadības proga "jāiešuj" pašā kontrolierī.

----------


## kamis

> Programmējas tas AVRs caur ISP. Tev tikai tā vadības proga "jāiešuj" pašā kontrolierī.


 latviešu valodā izteikties nevari kas ir ISP

----------


## GuntisK

ISP nozīmē "In system programming". Tas nozīmē ka tu vari programmēt kontrolieri pa tiešo uz plates.

----------


## kamis

to ka šis ATMEGA8 jāprogramme tad kad tas robotam uz dorta ir es saprotu un tas jādara izmantojot šito http://elm-chan.org/works/avrx/report_e.html#AVRSS
bet kādu programmu lietot (datorā) lai ieprogrammētu kontrolieri izmantojot doto programmu

un kur jāliek šitas kas nāca līdz programmatoram http://elm-chan.org/works/avrx/avrdude.conf.txt

----------


## GuntisK

Nebūtu labāk sākumā nopirkt (uztaisīt?) AVRu programmatoiru un uz robota plates ielikt DIP panelīti mikrai? Ja šitā negribi, ir taču daudz citu programmatoru un programmu viņiem kuras uztur ISP.  ::

----------


## kamis

vi ar doto programmatotu būs problēmas ka iesaki citu vaiantu
viss baigsim diskutēt par programmatoriem

tadnu taisīšu šito http://elm-chan.org/works/ltc/report.html
tur dots ISP programmātors http://elm-chan.org/works/avrx/report_e.html#AVRSS

 ::  kura programma jāizmanto (datoram) lai veiksmīgi ievadītu mikrokontrolieri dito programmu

----------


## GuntisK

Nu pēdējā linkā kuru tu Kami iedevi arī ir tās programmas.  ::

----------


## kamis

> Nu pēdējā linkā kuru tu Kami iedevi arī ir tās programmas.


 paldies ka atvēri man acis  :: 

cik sapratu jāizmanto šis 
Win32-based control programs for Windows 9X/Me/NT/2k/Xp. Including c source files. Mar 18, '07

----------


## Velko

> nesaprotu kā to programu no turbo pascal dabūt AVR


 Te nu nāksies Tevi apbēdināt. Ar Turbo Pascal diez vai izdosies programmu priekš AVR uzrakstīt.  Ar to Tev sanāks tikai DOSiskas PC programmas. Varbūt, ka arī eksistē Pascal kompilatori priekš AVR (par tādiem gan nezinu), bet tas noteikti nav TP. Turbo Pascal bija (šajā topicā) domāts, lai apgūtu vispārējos programmēšanas pamatprincipus.

Programmas priekš AVR raksta pārsvarā vai nu Assemblerā, vai C. Ar ASM būs grūtāk, bet C pamatprincipi ir pietiekoši līdzīgi Pascal - mainās pieraksta sintakse un vēl dažas lietas.

----------


## GuntisK

Priekš *AVR*iem eksistē labs* C* valodas kompilators un ar to tad arī vajadzētu sākt. PICiem savukārt ir PICBasic, afigenna vienkāršs.  ::  Gandrīz tas pats, kas QBasic.  ::

----------


## GuntisK

http://ln.com.ua/~real/avreal/index.html     -AVR ISP programmēšana

----------


## Epis

man liekās kad C valoda ir daudz grūtāka apr Asmu asmā pietiek ja iemācies kādas 10 pamat instrukcijas (kuras arī pārsvarā tiek izmantotas -> (datu bīdīšana mov, Stor, load + bitu manipulācija xor,and,or,nand+ pāris aritmētiskās add,sub un + kondicionālās branch ,jump, call utt. un viss var rakstīt programmu, bet iekš C jāmācās tās visas klases un finkcijas to ir daudz vairāk nekā procesora instrukciju un katai funkcijai savi parametri tāpēc man tā c valoda liekās sarežģitāka nekā asm. 
priekš vienkāršiem uzdevumiem vaig lietot vienkaŗšu valodu (ASM) priekš sarežģitiem sarežģitu (C). 
to vinekāršumu apstiprina arī tas fakskts kad ir arī tādi primitīvie (augsti speciālizētie procesori  ar kādām 10-20 insturkcijām kurām nav nemaz jēga to C kompilātoru veidot un kur vispār atmiņa priekš koda ir tikai kādi pāris kb tākā tur pat nekādu lielo kodu nevar ielikt (tas pārsvarā attiecās uz štiiem fpga minī pročiem) tākā asms(mašīnkods) ir pamatu pamats un pēc tam iet tās augstā līmeņa valodas kā C utt.. 
ja gribi sākt ar vienkaršāko tad sāc ar asm un tad uz C.

jo man vēl līdz šim nav bījusi vajdzība veidot tādu nenormāli lielu + srežģitu programmu kad būtu jāizmanto augstā līmeņa valoda kā C. nākotnē notiekti kad būs tāda vajadzība bet pagaidām nav.

----------


## Velko

Epi, tas tāpēc, ka C apgūšanai pieķēries no nepareizās puses - (ja pareizi atceros pēc foruma) Microsoft Visual C++. Grūtāk saprotamu programmēšanas vidi būs grūti atrast. Turklāt sāki apgūt nevis C, bet C++ ar visiem tā smalkumiem (pašā C nemaz tāda jēdziena kā klase nav). Arī funkciju standartbibliotēkā nav nemaz tik daudz (es nerunāju par Win32 API, kurā vells var kaklu nolauzt).

Par sarežģītību - uztaisi tādu operāciju kā dalīšana C un (AVR) ASMā, tad sajutīsi atšķirību  ::

----------


## Delfins

Epi, es nezinu kas tev bija skolotājs, bet klases un f-jas nemācās un nemēģina atcerēties [iekš C/C++,delphi]. Parasti skatās katalogā aprakstā pēc vajadzības (biežāk lietotās paliek atmiņā).

Turklāt C/C++ pieļauj inline-ASM, tā kā nevajag teikt, ka C slikts low-level kodēšanai.

----------


## Epis

nu jā tā visual C++ ir baigi smagā tāpēc es toreiz pārgāju uz visual C# tur ir vieglāk + bij video pamācības pēc kurām arī iemācijos un iebraucu kā tās windows programmas tur jātaisa.

ar vienkāršu programmu es bīju domājis tādu kurā ir darbības kuras procesors var veikt ar savām instrukcijām tas ir ja procim nav dalīšana tad dalīšana jau skaitās sarežģits proces un sarežģita programma tas pats arī ir ar pelodšajiem punktiem jo atmelim peldošo punktu nav un lai asmā uzkodētu tādu kodu aizies vesela mūžība tad protams vieglāk paņemt C pelodošo punktu bibloteku ielikt norādi uz viņu un lieta darīta rakstam a+b=c  (pirms tam vēl bīj jādefinē kad tie a,b,c ir peldošie punkti) 

man tas inline asembler pagaidām nav sanācis uz nios II 32bit procesora. atmeli es pat nēsu mēģinājis ar C programmēt jo nav bījusi vajadzība pēc dalīsānas un citām sarežģitām darbībām kur asmā vairs nav jēga kodu rakstīt.

Mans skolotājs ir Mr. internets + google  ::

----------


## kamis

nesaprotu kā mikrokontrolieris zinās no kura izvada gaidīt sijnālu kas jāapstrādā pēc programas

----------


## Epis

tieši tādēļ es arī iesaku no sākuma apgūt paša mikrokontroliera darbības principus viņa intrukcijas un to uz ko viņš ir spējīgs un tad arī zināsi kā notiek šie procesi un kā viņš izdomā ko darīt tālāk (pēc kādas programmas lai tālāk strādā). 
Atmel mikrenēm ir viegāl saprotama ASM valoda un instrukcijas nekā PICiem  tākā atmelis ir labs sākums ar ko sākt. lai sparastu kā tad viss tas proces notiek un galvenais ar kādām instukcijām tad tās programmas būvē!
Lai uzināt kā viss ntoiek lasi pamācību (mikrees datasheetu)

----------


## Velko

Iesākumam par AVR programmēšanu iesaku palasīt šos rakstiņus. No "Newbie's Guide To AVR Development" un "Basic interrupts and I/O" vajadzētu kādai saprašanai rasties.

----------


## kamis

kur kdu instrukciju latviski var dabūt picam vai avram

----------


## dmd

mācies vien angļu valodu. noderēs  ::

----------


## M_J

Varbūt mans komentārs par C būs no sērijas "lasījis neesmu bet nepiekrītu", jo neesmu šajā valodā neko taisījis. Visas savas pēdējās mikrokontrolieru konstrukcijas regulēju no PC. Līdz ar to man ir programma, kas strādā Atmelī un tai pretī programma uz PC. Atmeļus programmēju ASMā, PC - delfi7, kas ir tāds paskāla atvasinājums. Man personīgi daudz labāk patīk strādāt ASMā, nekā tajā Delfī. ASMā rakstīta programma strādā TIEŠI TĀ, kā es to esmu paredzējis, Delfī savas korekcijas ienes gan kompilators, gan komponenšu īpašības, piemēram es vēl neesmu atradis Delfi komponentēs taimeri, uz kuru var paļauties, ka tas man tiešām vajadzīgajā momentā izdarīs to, ko no viņa prasa, jo tiklīdz uz PC notiek kāds paralēls process, taimera precizitāte aiziet galīgā pakaļā. Man bija vienkāršāk šo funkciju pārnest uz Atmeli. Tāpat datu apmaiņā līdz šim man dators ir "Master", bet Atmelis "Slave", taisos to mainīt uz pretējo, jo atkal - kā uz datora notiek kāds paralēls process, vairs nevar paļauties, ka kāda datu apmaiņas reize netiks izlaista. Droši vien, ka labs programmētājs varētu šos defektus novērst, bet man ir vieglāk to pārnest uz Atmeli. Man programmēšana "augsta līmeņa" valodā zināmā mērā atvieglo darbu, tajā pat laikā atstājot pārāk daudzas lietas kompilatora ziņā sāku zaudēt kontroli pār notiekošo. Baidos, ka Atmelī lietojot tikai C notiktu tas pats, pareizi būtu izmantot C un ASMu optimālajās proporcijās.

----------


## Velko

Tā gan nav Delphi problēma. Windows *nav* t.s. realtime OS, un pat ASMā rakstītai programmai nevar garantēt, vai no vienas instrukcijas līdz nākošai paies 1 clock cikls, vai 5 minūtes (vienkāršoju un pārpīlēju, protams   :: , bet tāda ir pamatdoma).

Savukārt kompilēts C kods uz AVR vienmēr izpildās ar tādu pašu ātrumu (kamēr jamo nepārkompilē), tikai nav iespējams iepriekš paredzēt ar kādu tieši (tas ir kompilatora ziņā). 

Te nu vārds vietā. Gabalus, kuros nepieciešams, lai izpildās precīzi kā domāts, jāraksta ASM. Gabalus, kur tas nav svarīgi - C.

----------


## janispu

> kur kdu instrukciju latviski var dabūt picam vai avram


 Arī krievu valodā ir sakarigas grāmatas pat Atmeliem.

----------


## Epis

Piekrītu kad tur kur svarīgs izpildīšanās laiks jāraksta asmā, bet tur kur vienalga cik ātri izpildās kods (parsti tas ir liels kods) tad C vai cita jo nevar zināt kādu kodu viņš tur uzģenerēs. 

Vienīgā valoda kurā ir dokumentācija un citas pamācības (ko dod ražotājs) ir angļu valoda un ķīniešu laikam arī (esu redzējis tos ķīniešu ķeburu datasheetus šausmas vienkārši !!  ::  ) 
tākā realitāte ir tāda, ka viss jāmācās tajā angļu valodā (sākumā ir grūti, bet ar laiku pierod un tad sākās problēmas ar latviešu valodu tādēļ es arī sēžu forumos lai iemācītos kādu terminu arī latviski jo grāmatu ta normālu nav !! un šeit vienīgā vieta kur kautkas par tēmu tiek rakstīts latviski  ::

----------


## Delfins

Normālu un daudz grāmatu latviski nav un nebūs... Krievski gan ir un būs, jo ir pietiekami lieli resursi/bizness tur ir.

----------


## Raimonds1

http://www.tevalo.lv/cgi-bin/index.cgi?artnr=!73-666-77

vai ir veerts to pirkt saakumam?

----------


## Epis

Apskaties raimond1 http://www.olimex.com/dev/index.html zem AVR ir vesela čupa ar platēm un cenas daudz zemākas + izvēle lielāka un plašu aprīkojums arī dažāds un ir arī vairāki gatavi Projekti ar visiem kodiem priekš iesācējiem. Ir arī citas vietas kur var nopirkt lētāku un labāku AVR dev.kitu

----------


## janispu

> http://www.tevalo.lv/cgi-bin/index.cgi?artnr=!73-666-77
> vai ir veerts to pirkt saakumam?


 Nav vērts! Pats lietoju, ir labs. Bet!!!! no visas lielās plates izmantoju tikai ISP funkciju. Tā kā 90% gadījumu ar to pilnīgi pietiek, tad iesaku AVR-ISP (73-680-04). Tas ir lētāks. To lieto viens mans skolnieks, pagaidām nekādu problēmu nav bijis.

----------

