Nove pozice v nasem tymu (ST Praha, MCU support nebo FAE pro Cechy a Slovensko)
Tomas Dresler
dresler na hw.cz
Pátek Leden 9 16:18:51 CET 2015
Jeste si dovolim jednu poznamku - od toho priklady jsou, aby se pomoci
copy-paste co nejrychleji rozchodily a az potom adaptovaly na konkretni
HW bez toho, abyste potreboval lezt po neznamych registrech. Ten priklad
to jiz udelal a to je duvod, proc tam je.
Ja to beru jako stavebnici, kterou si poskladam z peripheral examples,
a kdyz vse bezi, pak teprve pisu aplikacni kod. Klidne si rozchodte ADC
bokem na tom prikladu, pak to vezmete jako modul a sup s tim do vaseho
projektu.
Tomas
Btw. Hitex vydal genialni knizku o programovani STM32, podobnou a velmi
hezkou psanou hebrejsky mam na stole, rikam ji STM32 bible :-)
On 2015-01-09 13:48, Fanda Kopriva wrote:
> Dobry den
> mel bych takovou prosbu (muzete-li to ovlivnit).
> Bylo by hezke udelat ukazky inicializace jednotlivych periferii.
> Napriklad philips ma v zahlavi popisu kazde periferie co je potreba
> udelat aby se
> periferie rozbehla.
> 1 - spustit hodiny a kde .
> 2 - nastavit porty a kde
> 3 - pripadne dalsi nastaveni
> 4 - nastavit registry u periferie pro nejaky zakladni rezim.
> Kdyz toto udelate tak se periferie spusti a muzete si s ni hrat.
> ST nabizi komplexni reseni ,ktere zahrnuje vsechny moznosti pro
> vsechny procesory.
>
> Bezne si prectu kapitolu o periferii a zacnu konfigurovat registry.
> Kdyz to nebezi tak to znamena cist vsechno ostatni a nebo se zacit
> hrabat v prikladu.
> To znamena skakat mezi radou souboru .c a .h a snazit se pochopit co
> chtel basnik rict.
>
> Priklad
> potreboval jsem rozchodit 16 bit sar AD prevodnik v f373.
> vysledek je nize.Je to par radku ,ale nikde jsem se nedocetl ,ze se
> musi zvlast zapnout
> napajeni prevodniku PWR_CR |= 0x200; (nebo to prehledl)
> Cely se to chovalo ,ze to zije ,jenom data byly nulovy.
> Potom jsem ve vasem prikladu hledal dve hodiny ,ze tam ma byt ten
> prikaz.
> A potom nasel ten registr v manualu v uplne jiny kapitole.
>
>
> void adcinit(void)
> {
> RCC_CFGR |= 0x90000000; // 9 >> 48 deleno 8 = 6mhz pro
> sdadc
> RCC_APB2ENR |= 0x07000000; //zapne hodiny adcdc
> toto jsem tam nadal PWR_CR |= 0x200;
> SDADC1_CR1 |= 0x80000000; //ini
> citac = 100;while ( citac ) citac--;
> while (!( SDADC1_ISR & 0x80000000 )) ; // cekej na ini
> SDADC1_CR1 |= 0x00000008; //interupt na konec extref
> SDADC1_CR2 |= 0x01480000; //fast,cont
> SDADC1_CONF0R = 0x00000000 | (gain<<20); //gain ofset
> SDADC1_CONFCHR2 = 0; //conf0 pro kanal8
> SDADC1_CR1 &= ~0x80000000; // konec ini
> citac = 100;while ( citac ) citac--;
> SDADC1_CR2 |= 0x00000001; //adon
> while ( SDADC1_ISR & 0x80004000 ) ; // cekej na ini=0
> citac = 100;while ( citac ) citac--;
> SDADC1_CR2 |= 0x00800000; //start konverze
> NVIC_IntEnable(IVT_INT_SDADC1);
>
> hodnotamin=0xffff;
> hodnotamax=0;
> citac = 0;
> }
>
>
> void sdacint() iv IVT_INT_SDADC1 ics ICS_AUTO { //25us 7us
> GPIOA_BSRR = tesd0A;
> hodnota = SDADC1_RDATAR + 32767;citac++;
> audiobufer[audiobuferinuk++]=hodnota ;
> if (audiobuferinuk>6144) audiobuferinuk=0;
> if (hodnotamin>hodnota) hodnotamin=hodnota;
> if (hodnotamax<hodnota) hodnotamax=hodnota;
> GPIOA_BSRR = tesd0A << 16;
> }
>
> Techto par radku nahradite desitkama kilobytu textu a pritom prave
> techto par radku je podstatnych.
> Ty priklady od Vas spise zavadeji (aspon mne) .Malo kdo bude treba
> merit termoclanek a tak aby vyuzil Vas priklad tak musi
> projit a zahodit vetsinu programu z prikladu a napsat si vlastni.To
> co je potreba je prave jenom ta
> inicializacni cast.
>
> Pripada mi ,ze prave prilisna komplexnost ukazek je na skodu.
>
> Podobna byla ukazka usb VCP.Nikdo nebude procesorem resit VCP s
> vystupem na USART.
> Na to pouzije FTD nebo neco podobnyho.Ocistit VCP od toho Usartu mi
> dalo dost prace a nez jsem to dodelal tak
> jste tam dali to reseni bez Usartu .Ale to bylo od zacatku zbytecny.
> Treba u USB si myslim ,ze by pro vetsinu aplikaci stacilo udelat neco
> jako USB stack jako je FTD.Jednoduchy rozhrani
> Prijde byte nastavi se flag a muzu ho vycist a mam-li volny bufr tak
> muzu zapsat.
>
> Omlouvam se za to postesknuti ,ale mozna je vic takovych staromodnich
> programatoru, co si program
> misto sestavovani pisou.
>
> Diky Fanda
Další informace o konferenci Hw-list