Nove pozice v nasem tymu (ST Praha, MCU support nebo FAE pro Cechy a Slovensko)

Fanda Kopriva info na elektronikavyvoj.cz
Pátek Leden 9 13:48:22 CET 2015


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ší část ---------------
A non-text attachment was scrubbed...
Name: info.vcf
Type: text/x-vcard
Size: 183 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150109/e75042f7/attachment.vcf>


Další informace o konferenci Hw-list