# Cits ... >  Programmas rakstiishana vajadziiga

## marisviens

Sveiks;)

Nepiecieshams uzrakstiit programu mikroprocesoram. Ja ir kaadam vai kaadai veeleeshanaas par atliidziibu to veikt, luudzu rakstiet personiigi mailto:aa@latnet.lv

Maris

----------


## zzz

> Sveiks
> 
> Nepiecieshams uzrakstiit programu mikroprocesoram. Ja ir kaadam vai kaadai veeleeshanaas par atliidziibu to veikt, luudzu rakstiet personiigi mailto:aa@latnet.lv
> 
> Maris


 
Konkreeti kaadam mikrokontrolerim programma vajadziiga laikam tak nevajadzeetu buut strateegjiskajam firmas nosleepumam.

Bet tuvaakajaa laikaa es nepiesakos - aiznjemts ar citiem projektiem.

----------


## marisviens

Jebkuram, leetaakajam, kursh nodroshina nepiecieshamo rezultaatu.

----------


## Epis

Nosaukšu plusus kādi būs ja marisviens ieliksi detalizētu problēmas aprakstu un ko viņš īsti grib.

1. plus:
Iespējams kad kāds jau ir risinājis tādu problēmu un viņam ir gatavas kods un tad tev mikrene ar gatavu kodu būs jau rīt.

2.plus:
 ja kādam ir gatavs kods moš tev pa kodu nemaz nevaidzēs maksāt vismaz noteikti kad tas maksās 4-10X lētāk nekā izgudrot divriteni no jauna  :: 


vis labāk būtu ja tu pats ņemtu un savu problēmu atrisinātu iemācoties programmēt tu dabūt viennozīmīgi lielāku atbalstu + palīdzību un atceries ielikt bildes vai video (vienmēr ir patīkami apskatīties ko kāds ir uzprogrammējis vai ulodējis).

Lai veicās meklējumos!

----------


## zzz

Maari, dari ko dariidams, tachu Epi vai deadbeefu gan par koderi nenjem.  ::

----------


## marisviens

Iisumaa:
Procesors gjeneree cetrus meandrus.
Frekvence 11kHz.
Pirmais atskaites.
otrais un treshais ar centru starp tiem -55 graadi
Attaalums starp otro un tresho reguleejams +/-7 graadi (ar poci), veelamais solis ~0,5 graadi.
ceturtais -80 graadi.

2,3,4 ir saistiiti vienaa blokaa, kuru var reguleet (biidiit) attieciibaa pret atskaites impulsu par 360 graadiem (veelamais solis ~0,5 graadi) . Regulaacija ar pogaam spaidaama (+/-) un peecaak ar pogu (spiezjot) ierakstaama.

Ir veel dazjas servisa lietas, kuras shobriid siikaak neprakstiishu.

Impulsi neriikst paartraukties, patvaljiigi mainiit aizpildiijumu, drebeleeties. Visam jaastraada, kaa cietajai logjikai. Preteejaa gadiijumaa intereses par to nav.

Maris

----------


## GuntisK

Kārtējais metālmeklētājs?  ::

----------


## 0xDEAD BEEF

Kas ir meandrs? Sinusoida?
Izklausas jau gan samera vienkarsi prieks taisntura. Kadas 500 instrukcijas sanaktu uz vienu Hz, bet ja sinusoida, tad nezinu, ka tadu uztaisit ar PIC.
Beefy

----------


## malacis

Man, primitīvi rēķinot, pie 11kHz un 0.5 grādi fāzu nobīdes sanāca, ka sistēmas izškirtspējai jābūt 0.25uS (mikrosekundes). Neredzu iespēju to uztaisīt ar vienkāršu mikrokontrolieri. Ja tehuzdevuma prasības netiek relaksētas, tad vienīgā iespēja būtu kāds specializēts motoru kontrolieris vai prasts PIC+CPLD.

----------


## Vinchi

Man liekas to taču diezgan viegli var uztaisīt ar mazu PIC vai AVR + L293. Regulēšanā poci izmantot gan man liekas sviests. Tad jau labāk divas pogas.

----------


## Epis

hmm jau paliek intresantāk. 

ja izmantotu Atmel atmegu tad man nāk prātā parastā bāzes frekvence - viens 8b taimeris, kas ies uz tiem 11khz un ar OCR0 (output compare reģistra interupt vektoru) medelējam to % nobīdi pēc kuras tad palaižam megas otru 16b taimeri kuram kopā ir 3 PWM signālu ģenerātori, tur ir 3 izejas katrai savs reģistrs (OCR1A,OCR1B,OCR1C) un tad šitas 3nieks varētu ģenerēt tos 3 singālus 11khz frekvencē ar to 55% nobīdi vienam no otra un tad varēs mainīt to 55% starpību un ja gribēs mainīt nobīdi pret bāzes signālu tad vaidzēs izmainīt 8b tamera OCR reģistra vērtību kautkā tā varētu būt!
Vienīgais čakars būs ar to 16b taimeri jo tie PWM ģenerēšans modi man riktīgi besī! 
ja es vispār pareizi sapratu ideju tad (4 izejas 1 fiksētā 11khz -> 2,3,4 tās mainīgās 55grādi pret sevīm un 360 pret 1 izeju!)


Man pašam galīgi laika nav.
varu idejiskajā līmenī palīdzēt, bet ne vairāk (nu moš kādu veco megas PWM perifērij uzstādīšans test kodu iesviest ja kādam kas gribēs taisīt vaig!

P.S.
Man PIC mikrenes nepatīk (atmels labāks)

----------


## zzz

Izskjirtspeeju 4 mhz ta veel vareetu nodroshinaat bez lielaam probleemaam, kas visu sho padariishanu padara maziet netriviaalaaku ir prasiiba lai nebuutu nekaada faazu dzhittera. Nu, jaaskataas,  CPLD +- MC ir aciimredzamais variants, kuraa var kjerties pie kodeeshanas bez iipashas papildus domaashanas, iespeejams paseezhot padomaajot vareetu izpiipeet arii citaadus risinaajumus/pieejas.

----------


## zzz

Epi daragusha - 

360 / 0.5 = 720 un

720 > 255

Astonju bitu taimerii vajadziigais reguleeshanas diapazons nafik neievietojas.

----------


## 0xDEAD BEEF

Nu ja ir vajadziga sinusoida, tad PWM nederes - tad ta sinusoida sanaks parak nesinusoidiga.
Tad piedavaju izmantot RC un opampu un PIC generetu noteikta garuma impulsus ar 11kHz frekvenci. Tad butu 454.5 intrukcijas, kuru laika vajadzetu
ieslegt izeju. pec ~64 instrukcijam +- ieslegt 50g nobide esoso un pec tam to pasu atkarto tikai izslegt visu. Tadu es uztaisitu par velti un pat uzdavinatu cipu marim, lai vins varetu uzrakstit, ka strada un zzz varetu iesalities!  :: 
Beefy

----------


## Epis

Es pa to izšķirtspēju tikai tagat padomāju tad minimums viag 11bit taimeri labi kad Atmegai 128 ir 2X  16B taimeri  ::  kopā 6 PWM kanāli itkā sanāk 
un tad lai dabūtu to izšķirtspēju taimera pulkstenim būs jābūt
10K*2*720=14400K=14,4Mhz 
itkā atmelis tad pavilkt varētu max 16mhz,
nu kā mans aprēķins itkā pareizs   ::  


nu jā programmējamā loģika CPLD (piemēram Alteras Max šeit pat tevālo pasūtīt var, tikai cik ietilpīgu tad vaidzētu? 11bit taimers aizņems 11macrocelus.
3x11bit compare reģistri=33celi + 2x11b taimeri = 55cels un nav zināms cik vēl vaidzētu? bet nu fakts kad 64 cel CPLD kas maksā virs 6Ls neder vaig minimums 128 cel, bet tā jau maksā virs 15ls (tevālo) tākā pārāk dargi ar atmegu128 vai citu sanāks lētāk.

----------


## zzz

> es uztaisitu par velti un pat uzdavinatu cipu marim, lai vins varetu uzrakstit, ka strada un zzz varetu iesalities! 
> Beefy


 Lieliiba naudu nemaksaa, beerninj. Uztaisi un uzdaavini.  ::

----------


## marisviens

Lielaakai saprashanai pievienoju bildi ar komentaariem 
http://www.ltn.lv/~a1/1.gif
Kaads njemsies to taisiit vai nee;)?

Maris

----------


## M_J

Vieglāk tas būtu izdarāms uz ATMEGA128.  Grūtāk uz ATMEGA16, vai ATMEGA8535. Droši vien arī uz citiem mikrokontrolieriem, vienkārši minētie ir kārtīgi iepazīti. Output Compare izeju skaits ir pietiekams. Tas šajā gadījumā ir noteicošais kritērijs. Ja tas ir, tad problēmu ar fāzu džiteru var atrisināt. Ir pieredze.

----------


## 0xDEAD BEEF

Es varu uztaisit PICa, bet 
1) nobidi vares regulet par 453 dalu Hz. Proti - lai generetu 11kHz kluci PICam ir 453 instrukcijas, ja darbojas ar 20MHz kristalu. Tad es varu pabidit viena vai otra virziena par x skaitu instrukciju kluca sakumu/beigas.
2) Ja notikumus sazime secigi uz papira lapas, kur notikums ir ieslegt/izslegt pinu (kluca sakums/beigas), tad atalums starp diviem sadiem notikumiem nedriks but mazaks par 6 instrukcijas. Pretejaja gadijuma ar 1nu PICu es to nemaku uztaisit...  :: 

Nu - tas ir tas, ko es varu uztaisit. protams - par velti - pats soliju!  :: 

p.s. tb - PIC izpilda 5milj operaciju sekunde. 5000/11 ir 454.54 instrukcijas. Lai generetu 1nu frekvenci vajadzetu uzlikt pinu high, nogaidit 226. instrukcijas. Uzlikt low. Nogaidit 226 instrukcijas - uzlikt high.

p.s. pic16f676 ir 14 pinu pic ar AD ieeju, tapec vins butu loti labs sim uzdevumam, jo vaertu pieslegt potenciometrus. cena ~2Ls.
Beefy

----------


## Epis

jautājums 0xDEAD BEEF kādēļ tu tieši izvēlējies šito PIC mikreni ?? 

Apstījos to PIC16F676 ir 2 taimeri 8bitu un 16bitu bet demžēl nav tās CCP (capture/compare/PWM module) var jau taisīt arī bez tās PWM perifērijas kā domā darīt 0xDEAD BEEF, vienīgi tā izšķitspēja laikam tad sanāk mazāka tāda kā 0xDEAD BEEF aprēkināja. 

Es apstījos Argusā tur ir 1,85Ls PIC16F628A-I/p  un šitam picam ir 1 CCP (uz 16b taimera) modulis un tad ja jau izmantotu tikai 1 ccp kanālu, kas ģenerētu software interuptu jau varētu iegūt lielu labumu (mazāks kods un  izšķirtspēja neciestu (1ccp ir labāk nekā neviens))  ::  
un es apstījos PIC16F628 datasheetā tad tur kopā ir 3 taimeri 2x8bit un 1 16bit un vienam no 8 bit taimeriem ir compare funkcija (8bitu perjoda reģistrs PR2, TMR2 reģistra vērtība palielinās no 00h līdz tā sasniedz PR2 reģistra vērtību un tad restartējās no 00h nākošā pulkstens ciklā (tulkots no PIs16F628 datasheeta un protams ģenerējās interupts (karogs paceļās)) tad sanāk PIC16F628 ir 2 kompare reģistri tikai otram ir 8 bitu izšķtspēja, kuru arī var izmantot  ::  (atveiglos programmas koda rakstīšanu 2X )
Un parastajā 8 bit taimerī izrādās kad arī var ierakstīt vērtību tikai viņš ies līdz FFh un tad būs interupts (pārtraukuma signāls) tākā ja izmanto visus 3 taimerus gudri tad varētu sanākt laba programma + vienkāršāks kods.

P.S
Pici arī ir labas mikrenes vienīgi man patīk Atmel 8bit RISC mikreņu arhitektūra labāk par PIC.

----------


## marisviens

Ar nepacietiibu gaidu, kad kaads pieteiksies. Labveeliiga iznaakuma gadiijumaa mums vareetu izveidoties regulaara sadarbiiba.
Starp citu, PIC16F628A lietoshana shim darbam buutu ljoti ieteicama. Man kaadi paaris simti ir (tieshi shiis).

----------


## zzz

> Ar nepacietiibu gaidu, kad kaads pieteiksies. Labveeliiga iznaakuma gadiijumaa mums vareetu izveidoties regulaara sadarbiiba.
> Starp citu, PIC16F628A lietoshana shim darbam buutu ljoti ieteicama. Man kaadi paaris simti ir (tieshi shiis).


 pici ir saks un mastdajs.  ::  

Ja gaidi ar nepacietiibu, nevareeshu liidzeet.

Ja ar pacietibu - peec 20. feb buushu piebeidzis tekoshos projektus, kuriem ir stingri deadlaini.

----------


## 0xDEAD BEEF

> jautājums 0xDEAD BEEF kādēļ tu tieši izvēlējies šito PIC mikreni ?? 
> 
> Apstījos to PIC16F676 ir 2 taimeri 8bitu un 16bitu bet demžēl nav tās CCP (capture/compare/PWM module) var jau taisīt arī bez tās PWM perifērijas kā domā darīt 0xDEAD BEEF, vienīgi tā izšķitspēja laikam tad sanāk mazāka tāda kā 0xDEAD BEEF aprēkināja. 
> ....


 A ko tev isti tie ntie taimeri dos?  ::  Vienigais, kam taimeris ir vajadzigs sini projekta, ir uztaisit n+5 instruckiju delay ko nevar izdarit ar parastu ciklu, jo tas butu n*3+2 instrukciju delay!  ::  Lai darbinatu PWM moduli ar taimeriem? Un ko tas dos? Tas pats 200ns solis vien buus!
Ko dod comparatori sitaja projekta, es nevaru iedomaties... :/
Kapec PIC16f676? Tapec, ka ir analogas ieejas un maris gribeja grozit ar analogo kloki, kaut gan - es varu ari uzmeistarot ar 628, bet bez analoga kloka however!  :: 

Lai nu ka - 200ns ir mazaikais solis, ar kadu vares regulet atstarpi starp meandriem (ja negribas overklokot picu) un 8*200ns ir minimala atstarpe starp meandriem (starp rise/fall) -
movlw d'255'
movwf tmr0 -- no sis vietas 2vas instrukcijas timeris nepalielinas
movlw b'00001011' --- piem jaunais stavoklis pec interupta
nop
nop - te vajadzetu izpildities taimerim, kas nakamo instrukciju parvers par call h'04' kas ir 2vas instrukcijas
org 0x04
movwf porta

Nu re- sanaca pat 8nas instrukcijas... diemzel neko nevar dariit...  ::  proti - ja gribas regulet atalumu, tad ne mazak, ka 8nas instrukcijas +n. Ja regulesana pofig, tad var ari mazaku atalumu norealizet.
Beefy

----------


## M_J

Ir četri signāli, kas jābīda attiecibā cits pret citu. Jāatrisina situācija, kad viena signāla fronte bīdās pāri otra signāla frontei. Tātad būs gadījumi, kad vienlaicīgi jāpārslēdz vairākas izejas, vai jāpārslēdz ar nobīdi viens solis, vai jāpārslēdz ar nobīdi divi soļi. Tik mazām nobīdēm ciklu nenoorganizēsi, jo ar vienu komandu jāpārslēdz viena izeja, ar nākošo cita, vēl ar nākošo varbūt vēl cita. Tas nozīmē, ka mazu nobīžu gadījumā katras nobīdes gadījumam jāraksta sava apakšprogramma. Pretējā gadījumā nebūs ievēroti uzdevuma nosacījumi. Tagad parēķini cik iespējamos veidos šie četri signāli var kombinēties signālu frontēm bīdoties vienai pār otru un izdomā cik dažādas apakšprogrammas šiem gadījumiem būs jāuzraksta, pie tam jāuztaisa selektors, lai mainoties signālu nobīdēm tiktu izpildīta pareizā apakšprogramma, pie tam visu laiku jāskaita līdzi komandas, lai viss notiktu īstajā brīdī. Taimeri visu to lietu stipri atvieglo. Vari mierīgi uzstādīt četrus output compare moduļus uz četriem laika momentiem un ir vienalga, kāda nobīde ir starp šiem laika momentiem - viss notiks paredzētajā laikā. Tāpēc tie taimeri.

----------


## 0xDEAD BEEF

M_J - kads sakars output compare ar timeriem? Tu bija domajis PWM? Tas gan deretu, bet tam PIC tikai viens tads pins ir. Varbut Maris var atvieglot uzdevuma nosacijumus ta, lai frontes/antifrontes nebiditos pari viena otrai un ieturetu 8*200ns + x*200ns vai statisku 200ns*const atalumu viena no otras?
Beefy

----------


## M_J

Nu ATMELiem output compare modulis ir viena no taimera satāvdaļām. PICiem to sauc par CCP moduli. Tas nav iekš 676, ir iekš 628, bet tikai viens. Atšķiras jau tā struktūra PICiem un ATMELiem. Man būtu stipri jāpiedomā, kā to verķi būtu uztaisīt uz kāda no PICiem - jau pasen esmu pārgājis uz ATMEĻiem. Jebkurā gadījumā jāizpēta, kā maksimāli izmantot konkrētā mikrokontroliera aparātiskās iespējas. Kāpēc mocīties un ģenerēt meandru uzmetot un nometot bitus izejas reģistros, un mēģināt visu paspēt laikā, ja to var uzticēt taimerim. Pie tam taimerim nav tikai viena funkcija. Ir vērts papētīt, kā iespējams sakombinēt taimera funkcijas, lai to izmantotu pēc iespējas pilnīgāk. Minētajam PICam es piemēram paskatītos arī, vai nevar dabūt labu meandru USART izejā periodiski nosūtot pa USART baitu 10101010.

----------


## marisviens

Veeleiz rakstu pasta adresi sazinjai mailto:aa@latnet.lv
liidz shim visi ar mieru bezgaliigi runaat par taimeriem un paartraukumiem, bet neviens nav piedaavaajis darbu veikt.
Liels paldies par skaidrojumiem, bet teikshu atklaati - man paslaik vairaak interesee rezultaats, ne tas, kaa to var izdariit. Pats rakstiit programmu neesmu ar mieru. Tamdeelj mekleeju kaadu, kursh to var izdariit. Es neesmu arii gatavs bez kaada taisiitapnjemshanaas apspriest, kaa un ko taisiit, ko vienkaarshot.

----------


## GuntisK

Bet paga,kām tas vispār ir vajadzīgs.Kas tā par tādu noslēpumainu ierīci-ja nebūs nojausmas kas ir vajadzīgais galaprodukts,neviens arī nepieteiksies.  ::

----------


## Raimonds1

starp citu, vai ir pieejami visām šitām progu lietām standarta risinājumi 
piemēram, impulsu atpazīšana, sprieguma līknes maiņas ātruma atklāšana utt
tāpat kā elektronikas shēmām
P.S. kāpēc neuzņemsies - ja Māris 1 ir ražotājs un maxā ?

----------

