# ATMEL mikrokontrolleri >  c tutorialis/ iesacejam peetams open source ?

## analgins

Sveiki, man ir sekojosa problema, visai liela es teiktu, iespejams netik ...

tatad ir linijsekotajs uz atmega16 bazes (vis salodets un cerams darbosies) bet nav praktiski nekadu zinasanu ieks c valodas, pa shim paris dienam esmu izguglejis lidz nemanjai, atradis paris saitus, vienu ljoti derigu, kas ieviesa nelielu skaidribu, bet ta isti neko neesmu iemacijies.. vienu reizi izspiedu kodu lai leds mirgotu, ari tas ieviesa nelielu skaidribu...

esmu sacis domat ka vaidzetu noziedot tos 30ls prieks gramatas, tad vis klutu daudz elementarak, jo tutoriali par velti nav diezko spozhi un tajos piemeri nevienmer strada ka vaidzetu, ja vispar strada.. bet kadu gramatu iegadaties ? kada ir atskiriba starp 'c' un 'c#' ? cik nopratu tad c++ ir kas ljoti advancets

varbutas varetu ieteikt kadu interneta resursu kura butu aprakstiti kadi pamati veidojot programu atmega16 mikrenei

lidz sim vis lielakas grutibas tika noverotas pie bitiem, un portiem, noradit ka konkretais ports ir izeja vai ieeja (I/O) 

lidz shim skola esmu apguvis algoritmus, binaro matematiku (tatad hexadecimalie skaitli nav problema.. klade vel kkur metajas  ::  ) un shobrid skola macos pascal.. neteiktu ka esmu izcils bet ari likrocis shajas lietas neesmu (ja neskaita binaro matematiku, ta likas diivaina) 

ja ir kas iesakams (no apgusanas viedokla nevis "tas nav prieks tevis, vacies!" tad butu loti pateicigs ja to ari izdaritu..

paldies par uzmanibu lasot sho visai garlaicigo postu  ::

----------


## Epis

Ieliec linkus uz tām grāmātām, tutorialiem kurus esi lasījis, lai var redzēt kur problēma, proti, ja tie tutoriali ir bījuši tīri sakarīgi tad vaina nav viņos, bet gan kur citur, kā pašvakas angļu valodas zināšanas, vai vienkārši kautko nēsi tā sapratis kā vaig.
Par pēdējo no savas pieredzes ar C mācīšanos varu teikt ka tur visādu āķu un viltību kā ko darīt it sevišķi ar MCU perifērij kodēšanu ir pa pillo, ja intresē palasi kādu no maniem topikiem kur es nesen mācījos C kodu rakstīt Stm32 procim un 
šai topikā ir papillo visādu grābekļu uz kuriem parasti uzkāpj visi kas kautko mācās: topiks ARM sadaļā "stm32 USB negrib iet  ::  "

viewtopic.php?f=25&t=2707&start=45&st=0&sk=t&sd=a

Bet tā lai kautko ieteiktu tev vaig uzrakstīt konkrētāk ko tieši tu nesaproti, ko, kā esi mēģinājis kodēt un kādus errorus rāda programma un ganjau kāds apskatīsies un pateiks kur kļūda.

Kā ir ar Assambler valodu ? ja nemāki tad moš sāc ar ASM kodēšanu tur Ledus paspīdināt ir vieglāk par vieglu.

----------


## Delfins

Dzimtie tutoriali ir vislabākie. Visas grāmatas ir pilnas ar drazu un nevajadzīgiem piemēriem.
Labas gāmats var būt tikai "par algoritmiem". Kaut gan google var visus algoritmus sameklēt.

----------


## kabis

Iesaku iemest aci te:

http://www.avrfreaks.net
pilns links:
http://www.avrfreaks.net/index.php?name ... forum&f=11

iesācējiem
http://www.avrbeginners.net/

----------


## Velko

Par valodām: C# ir Microsoft parodija par Java (iespējams šis tas sanācis labāk). Ar C saista drusku līdzīga sintakse un nosaukums. Mikrokontroliera programmēšanai galīgi nederēs.

C++ ir tāds "C ar pribambasiem". Pievienotas objektorientētai programmēšanai nepieciešamas lietas (klases, utml). Var izmantot MCU programmēšanai. Vairumā gadījumu tomēr šie "pribambasi" programmējot kontrolierus nav vajadzīgi. Galu galā programma sanāks tāda pati kā rakstot to parastajā C.

Ar ASM paspīdināt LEDus ir vienkārši, bet lai rakstītu kādus sarežģītākus algoritmus ir jābūt drusku faķīram  :: 

Ja reiz mācies Pascal - AVR ir iespējams programmēt arī izmantojot to. Tik' jāpameklē attiecīgais kompilators.

Šķiet kautkur te pat forumā lietotājs "karloslv" ir publicējis sava līnijsekotāja kodu C valodā - arī no tā var mācīties.

Par bitiem un portiem: porta DDR reģistrā, ja attiecīgais bits ir 1, tad tā ir izeja. Ja 0 - ieeja. Kautkāda sajēga par bināro sistēmu tak ir?

----------


## analgins

ko esmu izlasijis un kas deva vislielako labumu (manuprat) ir shis te
http://www2.tech.purdue.edu/ecet/course ... ial/atmel/
avr friikos ari esmu lozhnjajis bet nepietiekami citigi.. iemetisu velreiz aci.  :: 
http://www.avrbeginners.net/ - ir lasits, bet to kka neiebraucu, likas ka tas ir pavisam kam citam, tikai ar "piemeriem citam lietam" ja nemaldos tad avr foruma esmu registrejies kadu laiku atpakal..

no binara koda ir neliela saprasana, parcik pus gadu skola rekjinaju taa piemerus..

vis ticamak ka man ir problemas ar portiem tapec ka kad meginaju atrast leda kodu, tad bija divaina lieta ko nesapratu
konkretak shis te, ko tas define ?


```
#define sbi(a, b)  (a |= (1 << b))
#define cbi(a, b)  (a &= ~(1 << b))
```

 vel neskaidribas ir ar sekojosam lietam
unsigned / signed ko tie apzime ? char int - datu tipi,  lidzigi ka ieks pascal int ir integer, pareizi ?

cik korekti butu tagad censties mikreni kodet ieks pascal ? tas gadijuma nesajauktu pratu ka saprast vairs neko nevar ? tas butu sarezgitak vai elementarak? cik zinu tad avr prochiem ir janorada vis, nav ta ka porti ir defineti utt..

----------


## abergs

C valodā sākumam vispāratzīta vērtība Kernigana B.V. un Richi D.M. grāmata "C valoda".
Pamēģini sameklēt un nokačāt. Man ir tikai krievu valodā un kur ņēmu vairs neatceros.
Par atmeliem gan nemācēšu neko ieteikt - pašreiz lietoju picus.

----------


## Delfins

Nu pēc tādiem jautājumiem ir par agru līst iekš HW programmēšanas. Ja nezini kas ir unsigned un define-s, jāpalsa grāmatas un jāpatrenējās uz konsoles demo-programmiņām  ::

----------


## jeecha

Neatkariigi vai C vai paskaals vai asamblers - lielaakais chakars taapat buus tieshi ar perifeerijas lietoshanu, un lai izprastu kaa uz konkreetaa kontroliera midzhinaat diodi, nolasiit vai poga nospiesta vai nee, dot aaraa PWM signaalu vai nosuutiit datus pa RS232 taapat naaksies rakties pa konkreetaa kontroliera datasheetiem un/vai googleet kaadu paraugu... un nekaads kompilators no taa neizglaabs.

----------


## analgins

lasto to tutu, sapratu ko dara #define... bet tas ko nesapratu ir tas ko tas divas rindas define...
ko nozime periferijas ? ka tas ir angliski, taa ir hardweeriska puse vai saistits ar bitiem ?

----------


## karloslv

> ko esmu izlasijis un kas deva vislielako labumu (manuprat) ir shis te
> konkretak shis te, ko tas define ?
> 
> 
> ```
> #define sbi(a, b)  (a |= (1 << b))
> #define cbi(a, b)  (a &= ~(1 << b))
> ```
> 
> ...


 Aiz neko darīt atbildēšu.

1) #define ir makroprocesora komanda. Tāda rindiņa tikai pasaka - visur programmas tekstā sbi(a, b) aizvietot ar (a |= (1 << b)), kur a un b var būt patvaļīgi. Piemēram, programmā sbi(DDRB, 2) vietā faktiski būs (DDRB |= (1 << 2))
2) par to, kas ir operatori |= &= ~  << un citi, skaties kaut kur internetā. Paskālā to visu raksta garāk, bet nekā revolucionāra te nav. Konkrēti šīs divas #define uzstāda vai noņem vienu bitu kaut kādā mainīgajā.
3) unsigned / signed - varēji jau vismaz wikipedia izmantot. signed ir datu tips, kuram var būt negatīvas vērtības, unsigned - tikai nenegatīvas. reāli dzelžos nekas neatšķiras, vienkārši signed to pašu skaitli interpretē citādāk, vecāko bitu uzskatot par zīmes bitu.

----------


## Epis

MCU perifērijas ir viss tas kas nav procesors proti tās ir caur datu līniju pieslēgtas procim un pilda kautkādu funkciju kā Taimeri, signālu ģenerātori, seriālo komunikāciju signālu saņēmēji,sūtītāji un tad viņas konfigurē, uzstāda caur reģistriem (atmiņas blokiem) un tad tos reģistrus tev arī ir Jāraksta, jānolasa lai piemēram spīdinātu LED diodi, un reaģētu uz Pogas nospiešanu, jo tā pats iekšējais procesors bez perifērijām neko izdarīt tādu nevar ( var pat teikt ka perifērijas ir proča saikne ar ārpasauli) 
Reku paraug kods kā var izskatītes Led spīdināšanas proga Asmā, proti ja no ārpuses spiež pogu un tur tiek testēta atmegas128 Input capture perifērija (vai ķer signālu uz abām izmaiņām (rising,faling edge) ja grib nomainīt citu mikreni un uzlikt to megu16 tad nomaini augšā to #include failu un pamaini pogas portus, domāju ka Taimera1 perifērijā tur nekam mainīties nevaidzēja, Vismaz AVRstudio simulātorā vari ar debageri pabakstīt portus un pasekot kā kods izpildās  ::  



```
#include "m128def.inc"

rjmp	Starts

.org	$0016
	rjmp 	CaptureInterupt  ;Timer 1 Capture event icp1/PD4
Reset: 
	ldi		r16,1		; Stack point.0x0120
	out		SPH,r16
	ldi		r16,0x20	;  uzstâda stack pointeri
	out		SPL,r16
	sei

Starts:
;------------------------------------
;Porti
	ldi		r16,0b11100000	; PD7 - set output ( tip Lai spīdētu kāda LED diode uz PD7 pina)
	out		DDRD,r16   ; DDRD ir IO Porta D perifērijas reģistrs kuram ir sava funkcionalitāte un tad tagat viņā 
; ieraksta R16 reģistra vērtību
	ldi		r16,0b00011111	; pull up enable PD4 (1) priekš pogas
	out		PORTD,r16
	ldi		r16,0b11111111  
	
	ldi		r16,0b00100000		;uzliek TICIE1 Bitu (00100000) kas aktivizē Icp1/PD4 un 
	out		TIMSK,r16			;vektors $0016 izpildâs kad karogs ICF1 ir 1 registrâ TIFR !!! 
; TIMSK arī ir Taimera 1 perifērijas reģistrs ar kuru konfigurē taimeri1 ko nozīmē katrs bits ir jālasa MCU datasheets.
	ldi		r16,0b01000001	; ielâdē r16 6 un 0 bitus
	out		TCCR1B,r16  ; ielâdē topašu r16 6 bitu ICES1 un 0 bitu CS10 (internal clock sorce)  

	ldi		r16,1		; Stack point.0x0120
	out		SPH,r16
	ldi		r16,0x20	;  uzstâda stack pointeri
	out		SPL,r16
	sei
end:
	nop
	rjmp   end

CaptureInterupt:
	sbis	PinD,4
	rjmp	maina
	sbi		PortD,7  ; Ja šeit ir Led diode tad tā spīdēs
	ldi		r16,0b00000001	; faling edge ICES1 0
	out		TCCR1B,r16
	reti

maina:
	cbi		PortD,7 ; Tagat Diode nespīdēs
	ldi		r16,0b01000001	; rising edge ICES1 1
	out		TCCR1B,r16
	reti
```

 Kā redzi Asms ir primitīva valoda un C analogs varētu izskatītes bišķi vienkāršāks, bet tur noteikti būtu tā failu struktūra,biblotekas sarežģitākas nekā plikam asm. 




> Nu pēc tādiem jautājumiem ir par agru līst iekš HW programmēšanas. Ja nezini kas ir unsigned un define-s, jāpalsa grāmatas un jāpatrenējās uz konsoles demo-programmiņām


 Man jau uzskati ir savādāki ka jāmācās ir kodējot, nevis Lasot teorija, proti izlasi kas ir "int" tad uzkodē int a,int b,int c=a+b; un lūk programma ir gatava  ::  un tā mēģini tālāk darboties un atklāt katru nākošo C kodēšanas paņēmienu, un ganjau nonāksi arī līdz perifērijām.

Atceros ka man pirmais strādājošais simulātorā MCU kods bīja tam PIC16f628 kur es ielādēju reģistrā pirmo vērtību un izdarīju kautkādu A+B darbību, kods bīj ļoti primitīvs tikai pāris rindiņas, un tajā brīdi man nāca apskaidrība par to kā tad strādā Visi pasaules procesori, līdz tam tā bīj kautkāda "Mistika". (laigan vēlāk atklāju ka citiem pročiem,kā AVR, tās instrukicjas ir daudz advancētākas un viegāk kodējamas nekā tiem arhajiskiem PIC.
Vispār Assambleris ir vienīgais instruments kur var redzēt kā tad procis strādā, un citas augstā līmeņa valodās to redzēt nevar.

----------


## Delfins

> un citas augstā līmeņa valodās to redzēt nevar.


 Bet viņām tas nemaz *NAV* jādara.. C/C++ ir tāda fiška `inline ASM`, bet ar to ir jāuzmanās.

----------


## analgins

nezinu vai domaju daru pareizi, bet liekas ka tagad macities asm un pectam c ir neefektivi, jo c liekas vieglaks..

atradu tutu gugle, jautajums vai no ta ir verts macities, un kur (ar ko) domats kompilet tos pirmos softus ? nevar taks but ka tikai uz linux shis stradas ?
http://www.physics.drexel.edu/students/ ... /C_basics/

----------


## Delfins

teorētiski pofig kāda platforma... galvenais lai ir headeri un nokompilēts/salinkots attiecīgam devaisam (OS-am)

----------


## analgins

un kaa to uz win panakt ? pienjemu ka ar to pasu avr studio tas neies cauri, vinjs momenta taisis hex failu utt.. vai es maldos ?

----------


## Velko

Priekš mācīšanās vajadzēs kādu kompilatoru, kurš taisa Win .exe-s. Var ņemt DJGPP (tas pats GCC kompilators, kas iekš WinAVR, tikai kompilē .exe-s). Var instalēt CygWin (tāds - "mini-linuksiņš", kurš piedāvā ko līdzīgu *nix videi zem Windows, arī satur to pašu GCC). Var pameklēt kādu Borland C++ (tas nekas, ka C++ - tāpat rakstīsi C). Var ņemt to pašu M$ Visual Studio un ignorēt visu "lieko".

----------


## analgins

lai cygwin uzstaditu ir nepieciesamas kadas ipasas zinasanas ? ar linux saskare maza ir bijusi, kaut ari vienmer esmu gribejis to lietot  ::  anyhow tagad velku pilno versiju ~700mb.. 

pec idejas man vienkarsi butu jauzstada cygwin un jaraksta softi ieks ta, pecaak varetu meginat tos parnest uz mikreni, vai bus vel kadi sarezgijumi kas atskirsies starp mikrenee darbinamiem hex failiem un tiem ko es palaidisu caur cygwin ?

----------


## Velko

Lai uzstādītu nekas diži daudz nav jāzin - tāds pats Next->Next stila instalators vien ir, šķiet tikai, ka bija diezgan liela izvēle kādas daļas likt, kādas nē.

Lai lietotu - tur gan drusku būs jāpamācās. Iesākumam vari palasīt šo.

Darbošanās princips būs ~ šāds: kodu raksti ar kādu parastu teksta redaktoru (Notepad2, Notepad++ vai ko tamlīdzīgu). Pēc tam iekš CygWin shella raksti komandas lai jamo kompilētu un palaistu.

Kods priekš kontroliera atšķirsies ar to, ka uz MCU daudzas funkcijas nebūs pieejamas - kaut vai tas pats printf(), failu lasīšana/rakstīšana, utml. Tā vietā būs citas lietas - kontroliera porti, interrupti, utml.

----------


## Epis

kautkā liekās ka tas C mācīšanās virziens ir aizgājis bišķi šķībi, 
Es iesaku sākumā nečakarēties ar tiem compilātoriem, linkeriem un kur nu vēl Make failiem, tai vietā izmantot Integrētās izstrādes vides kur uzraksti savu C kodu nospied pogu Compile, tālāk Debbug un skaties kā MCU izpilda instrukcijas, sākumā tev nav jāzin kā kas tur kompilējās, linkojās (es pat šito pats īsti vēl nezinu kā tos make failus taisīt un vispār arī gribēšana zināt ir pārgājusi).
Tātad vis kas tev jādara ir: ieinstallē to WinAVR-20080610 (vai jaunāku versiju) + AVR studio Ver 4.12. vai jaunāku un raksti tajā AVR to savu C kodu un compilē, ja šitas variants neiet cauri tad paņem kādu Krutāku integrēto vidi kā IAR Kickstart Free AVR versiju (tur laikam bīj koda izmēru limiti ja pareizi atceros) un tur būs visādi C piemēri, praugi kuriem varēs uzģenerēt to Hex failu un AVR ieprogrmmēt. 

ASM vaig zināt jo tas ir viens no posmiem kā tiek ģenerēts MCU Hex fails un ķēdīte ar C valodu ir tāda:
 C kodus compilējoties pārtop ASM kodā un tikai pēctam no ASM koda tiek taisīts HEX fails, proti ASM kods praktiski ir tas MCU mašinkods, kas pa taisno var pārtapt HEX failā, 
 Zināt kā kodē ASM nozīmē arī zināt Kā uzbūvēta ir MCU, kādas instrukcijas viņai ir, + kādas perifērijas un to reģistri,biti viņai ir. un ja grib kodēt MCU tad ātri vai vēlu NĀKSIES lasīt par šito visu, tākā vari sākumā to mest pie malas, bet vienalga dzīve tevi piespiedīs atgriezties pie pašiem MCU pamatiem. ! un Datashetu Lasīšanas  :: 
Un ASMS būs vaidzīgs tādēļ kad uz MCU pārsvarā tiek kodētas īstā laika sistēmas, kas kautko dara, kontrollē kādos kritiskos Laika intervālos, un tikai kādi 6-7% uz MCU kodē Operētāj sistēmas kā Linux un citas, un līdz ar to ja gribēsi no MCU izspiest MAX performance kādā laika kritiskā kodā tad nāksies līst iekšā ASMĀ jo pilnīgi iespējams kad C compileris ģenerēs paāk daudz sūdīga koda. 
Līnijsekotājam protams nekāds baigais MCU noslogojums nebūs, laigan ja gribēsi Krutu līnijsektoāju (tāds kāds Lietuviešiem kuri vinnēja) tad lieta būs pavisam cita.

----------


## Velko

> (es pat šito pats īsti vēl nezinu kā tos make failus taisīt un vispār arī gribēšana zināt ir pārgājusi).


 


> bet vienalga dzīve tevi piespiedīs atgriezties pie pašiem MCU pamatiem. ! un Datashetu Lasīšanas


 Tā pat kā tevi dzīve piespiedīs atgriezties pie komandrindas un Makefailiem.  :: 

Cilvēks tak grib sākumā C pamācīties, nevis uzreiz bliezt augšā firmwari līnijsekotājam. Makefile ir universāls veids, kā piedabūt kompilēties jebko, jebkur. Kamēr katrā IDE ir simtiem ķeksīšu, un katrā savādāk. Un vienkārši, ar roku rakstīti makefile nemaz nav sarežģīti.

Ja jau tu tik ļoti fano par ASM, ko tad neraksti savus iterpolatorus, kompresiju un pārējo iekš ASM? Čipam paredzēto kodu attiecīgajā assemblerā. Kompim paredzēto softu x86 assemblerā. Parādi tak kā "īsti vīri" programmē! Slabo?  ::

----------


## Epis

> Tā pat kā tevi dzīve piespiedīs atgriezties pie komandrindas un Makefailiem.


 Ganjau pienāks Laiks arī tam   ::  
(tādā gadījumā ja vaidzēs kodēt kādu proci kur visas IDE maksās naudu, bet Opensorce būs tikai COmpileris (piemērs ir TI C6000 proči kuriem ir uz linux iznācis free compileris a tā viņu softs maksā bargu naudu. )




> Ja jau tu tik ļoti fano par ASM, ko tad neraksti savus iterpolatorus, kompresiju un pārējo iekš ASM? Čipam paredzēto kodu attiecīgajā assemblerā. Kompim paredzēto softu x86 assemblerā. Parādi tak kā "īsti vīri" programmē! Slabo?


 īsti virīvi vispār māk arī Kodēt Super zemajā LOĢIKĀ līmenī  ::  kur ir īstā Masīvi paralēlā datu,bitu manipulēšana, bet to parasti dara tikai tad kad ir Akūta nepieciešamība pēc tā un nav nekādas citas alternatīvas, bet koncept kodus īsti vīri izstrādā pēc idejas, jo ātrāk jo labāk, tādās interaktīvās vidēs kā Visual Studija, vai citas, ar super navarotiem kā "intelSence"  kodu drukāšanai. 

Tākā es šeit varu ieteikt jaunajam iesācējam arī iemācīties kodēt tajās Visual C#,Basic,C++  interaktīvajās vidēs, tur pat ir dažiem pielietojumiem, kā robotikas SKD pakai, kautkāda VPL (visual Programming Language), kur var tos kodus ar blokiem sviest (es šito nēsu meģinājis, bet par to laikam esu ieminējies Robotikas topikā 
un par to ir čupa Video matreālu šajā linkā http://channel9.msdn.com/tags/Robotics/
šitas protams ir Viegls, ātrs bet Dārgs ceļš kā būvēt to robotu. (jo jāpērk gatavā elektronika)

----------


## Velko

> īsti virīvi vispār māk arī Kodēt Super zemajā LOĢIKĀ līmenī  kur ir īstā Masīvi paralēlā datu,bitu manipulēšana


 Vispār sāk vilkt uz šo  :: 




> Tākā es šeit varu ieteikt jaunajam iesācējam arī iemācīties kodēt tajās Visual C#,Basic,C++  interaktīvajās vidēs, tur pat ir dažiem pielietojumiem, kā robotikas SKD pakai, kautkāda VPL (visual Programming Language), kur var tos kodus ar blokiem sviest (es šito nēsu meģinājis, bet par to laikam esu ieminējies Robotikas topikā un par to ir čupa Video matreālu šajā linkā http://channel9.msdn.com/tags/Robotics/ šitas protams ir Viegls, ātrs bet Dārgs ceļš kā būvēt to robotu. (jo jāpērk gatavā elektronika)


 Laikam nelasīji sākumu - robots jau ir salodēts, vajag tikai ieprogrammēt. Kāda jēga mācīties C# vai, vēl trakāk, Basic ar visiem M$ "pribambasiem", ja uz MCU no tā tāpat nav nekādas jēgas. "Epic failure", es teiktu...

----------


## Epis

Tās visual studio vide jau ir Augstā līmeņa izstrādes vide caur kuru jau neviens nekodē kā robotam spīdināt Ledus, vai kontrolēt motorus, tur jākodē tādas lietas kā komandas ko robotam darīt kā: braukšanas trajektorija, fiziskais modelis, kontrolles parametri un arī var izmantot reāliem dzīves eksperimentiem = Datu vākšanai, analizešanai, un galu galā visu processu noregulēšanai, apmēram kā es taisīju savu SMD krāsns Tempertūras profilu un tur bīj 2 programmas:
1. atmegas 8 ASM kods
2. visual C# RS232 vadības, kontrolles Smagās FPU matemātikas kods un daļa, proti Visual C# aprēķināja vadības trajektorīju kontrollpunktus un citus parametrus kurus tad Atmega izpildīja un par rezultātiem ziņoja kompim un es varēju tad par progressu attiecīgi ziņot stāstīt un ielikt forumā kādu printscreen no krāsns darbības.
Un tādēļ sakombinējot kompi +MCU sanāk Interaktīva izstrādes vide ar ļoti labām īstā laika eksperimenta testēšanas,Debagošanas iespējām.

Ja kāds zin kādu labāku vēl interaktīvāku, vieglāku, ātāku veidu kā izstrādāt kādu produktu, un viņu ietestēt, debaggot ar kādām super programmām tad pasakat man arī !

Tākā C valoda ir tikai visa ceļa sākums, un būs vēl ļoti daudz viskautkas jāmācās kamēr kautko patiešām labu varēsi uztaisīt, tāda ātrā, vieglā ceļa NAV ! ( es sākumā domāju ka tāds ir pēc 2 gadiem secināju ka tomēr nav  ::  )

----------


## Epis

Analgīn gribi iet vieglo ceļu un kautko ātri iemācītes uzkodēt ! tad paņem un nopērc STM32 Primer development kit
http://www.elfa.lv/cgi-bin/index.cgi?artnr=73-872-41
32.67Ls   (man tāds ir un esu ļoti apmierināts, softs strādā labi, C kodi arī rakstās tīri labi, var uzspēlēt pāris spēles, uztaisīt savu minī Operētāj sistēmu uz tā LCD ekrāna, un ja vaig kādu Demo kodu Led iespīdināšanai un pogu bakstīšanai tad palasi to ARM sadaļu par USB tur es esu ielicis tos Demo piemērus kas man ir gājuši  ::

----------


## analgins

tads kits jau ir gauzham jauks, tachu esmu izterejis pietiekami daudz naudas shaja projekta lai gribetu to novest lidz galam, un tikai tad domat ko varetu darit talak, pachukstesu aptuvenas izmaksas ~40Ls .. vel 30 par to fignju nu negribas izlikt, jo to ko lidzigu noteikti varetu panakt uz manas atmegas vai cita procha, ja sarezgitaks celjs, bet es to gribu iemacities nevis nopirkt gatavu kitu, kiti domatu likrochiem, vai koderiem kuri pilnigi neko nerubi no elektribas  ::  parcik ar elektribu esmu gandriz uz Tu, tad vis kas atlicis ir iemacities programet..

----------


## Epis

Nupat pamēģināju kautkādu veco AVR GCC projektu palaist un nekas neiet 
rāda Runtime error:
šeit bilde
[attachment=0:26l9gdny]AVRstudija_Errors.JPG[/attachment:26l9gdny]

Vispār esu jau aizmirsis vai man toreiz kad čakarējos ar tiem make failiem un GCC sanāca tos kodus palaist iekš simulātora vai nesanāca, Compilēt jau compilē bet galvenais lai varētu arī debbagot kodu netikai kompilēt.

----------


## Velko

He he... te tev nu bija krutās IDEs  ::  

Pēc bildes spriežot - visi komandrindas tūļi nostrādā bez problēmām, tikai pats AVRStudio pēc tam nojūdzas. Vispār jau esmu saskāries ar šo problēmu. Man AVRStudio pārinstalēšana palīdzēja.

----------


## analgins

man tads jautajums kapec avrProg ljoti reti pamana ka pieslegta mana plate ? no 10x kadas 3 nostrada.. un kad nostrada saprogramet var normali..

tagad testeju ritenjus, par nelaimi neprotu rakstit c tapec nedaudz samainiju portus un led kodu izvadiju uz servo  ::  kustas bet gribetos ko gudraku izveidot  :: 

panjemu gunta dator peles kodu, un kad meginu to programet saka "flushing!" un tad ka nevar ierakstit ne eeprom ne falsh..

tas varetu but del ta ka reset pinu nenodzen uz 0? vai tur softa problema ka neredz ? ledus midzinot nekas tads nebija, tikai kad pierubiju motorus..

ediite: noravu servo vadus, momenta vareja saprogramet, iebaroju to gunta kodu, un rezultata vinjs man nonstopa griezas pa kreisi, pastumu apaka rutinj lapu ar melnu liniju, bet tam ne silts ne auksts, domaju dienas gaismas lampas trauce, izsledzu gaismu istaba - 0 emociju, turpinaja griezties pa kreisi..

pielaboju kodu lidz shadai versijai, bet man tagad deg tikai status led's un nereage uz melno liniju..
domajams ka motoru kontroles dalja nav pareiza, jo skiet ka sensoru input dalju izlaboju pareizi, jajau tur errorus nemeta, vai arii vienkarsi man ir citas uzbuves sensori, kuri dod signalu ieksa nevis nolaiz zeme .. varbutas tapec kkas nav kartiba?

ediite pieliku klat 

```
 #include <mega16.h>
```

 un tas saka normali braukt, ari liekas ka sensori ir darbibas kartiba, vienigi tas dodas nepareiza virziena, proti atpakalgaita  ::  no ka tads joks varetu but ?

ediite: kods tika vel nedaudz izlabots, tagad rodas problema ar bibloteku "crtm16.o"
luuk errors "e:/winavr/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm16.o :: .init9+0x0): undefined reference to `main'"

----------

