Diskuze - danyk.cz

Vlákno z kategorie: Hlavní diskuze
Celkem 33 odpovědí.


22.06.2017 (19:44:46) K # IP X
milan obalka :
existuje stránka, kde lze zjistit náhradu atmelů?
Potřeboval bych zjistit, který levnější atmel pinově sedí s atmegou 644. ta má zbytečně velkou paměť a je zbytečně drahá.
Lze nahradit třeba atmegou 32, jenže ta nemá PCINT. to zrovna potřebuji
Našel jsem atmegu 164, jenže ta zase nejde v čr koupit...
22.06.2017 (21:14:56)  # IP X
Dreit obalka :
Bojím se že jedině tohle - http://www.atmel.com/products/selector_overview.aspx - ale interrupty tam nikde nevidím. Jako druhá možnost mě napadá kouknout sem - http://www.eit.lth.se/fileadmin/eit/courses/edi021/avr-... - ctrl+f, PCINT a projít ty typy co to nabízí.

Ohledně 164 - http://www.tme.eu/cz/katalog/#search=atmega164&s_field=...
Doprava za 40Kč (Geis)
23.06.2017 (09:15:44)  # IP X
milan obalka :
tam jsem koukal a skladem 0ks u všech. asi si PCINT udělám v mainu určně u megy 32.
23.06.2017 (10:23:14)  # IP X
VroutekB:
A co se na ty zasraté atmely už i vysrat?! Nahraď to třeba STM32F030C6 za 35 korun (48MHz 32bit Cortex M0, 32kB FLASH 4kB RAM).. nebo klidně nějakým STM8S005C, ale to tě bude stát skoro stejně jako ten ARM.
Zrovna máme i v práci od finderu jeden jejich produkt, zbastlený na nějaké xmega šitce, chtějí to po nás portnout na STM32L0.
Prdel je, že ten hovnokód psalo nějaké ultraprase. Je to všecko v jednom main.c modulu, který má asi 9000 řádek, z toho funkce main asi 5500 řádek a obsahuje switch stavové mašiny se skoro 100 stavy. Není k tomu žádná dokumentace, ani komentáře. A pokud někde nějaký komentář je, tak v taliánštině. **34
23.06.2017 (13:17:38)  # IP X
milan obalka :
vím, že se na to mám vysrat. taky se na to vyseru.
STM má dokonce i program na vyhledání MCU dle parametrů. to od atmelu je k ničemu.
Jenže už jsem udělal chybu a asi to nevyřeším. jedině že bych tam naprasil něak ten STM32F103C8T6. mám na něj redukční destičku na Pin lištu.
Jelikož mám vše oddělené optočleny, tak by to i šlo.
Tak mi řekni co si mám stáhnout, aby takovej debil jako já, zvládl ARM.
hlavně aby to importovalo vpohodě z cubeMX (já se to sám nakonfiigurovat nenaučím, musí to za mne udělat program)
23.06.2017 (23:22:11)  # IP X
Scotchlok:
Jenomže ty STMka jsou pro běžného českého bastlíře, omluvte ten výraz, složité jako prase. Nejenom že vnitřní struktura je nejméně 10x složitější než u běžných 8 bitových procesorů. Atmely nebo i Microchipy mají tu obrovskou výhodu že je pro ně mnoho, občas i kvalitních, návodů pro prostého bastlíře a to často i v češtině. Také se mi dostal do rukou vývojový kyt STMka, tak vím o čem mluvím. Má-li se člověk učit zacházet s vlastním mikroprocesorem, učit se C-čko a k tomu se ještě učit chápat nějak programování obecně a to vše ve svém volném čase, tak je daleko snazší a uživatelsky přívětivější začít s Atmelem než li s STMkem.
23.06.2017 (23:27:54)  # IP X
VroutekB:
Víš co prde? Vezmi si mrdujínko a pak tu taky ale nefňukej, že tě nějaká tupá stará atmega644 nebo 164 stojí 2 stovky. Chudáčci... já vim, vono to je strašně náročný se něco naučit a něco pro to dělat... Nedejbože vyžadovat umět aspoň základy angličtiny...
24.06.2017 (08:28:26)  # IP X
antibalda obalka (web) :
Na STMka jsem měl stejný názor jako Scotchlok, ale po palbě nadávek na AVR/PIC od Vroutka a sepsání všech pozitiv STMek, jsem rád na STMka přešel. Ano, máte pravdu, je to o poznání složitější, ale za ty přednosti ARM jádra to určitě stojí. Navíc si můžeš stáhnout jen knihovny, které následně budeš používat jako na AVR. Obdobně jsi můžeš stáhnout CubeMX od ST.com, kde si vybereš přesný typ uC, který budeš používat, vyklikáš si pin-out a CubeMX ti vygeneruje počáteční code a všechny systémové registry nastaví za tebe, navíc umí i jednoduché práce s perifériema (jak moc umí pracovat s perifériema nevím, protože CubeMX nepoužívám).
Abych to nějak shrnul - souhlasím jak s Scotchlok tak i s Vroutkem. Je pravda. že na AVR je spousta návodů a příkladů, ale ARM od ST má daleko více možností použití, periférie o kterých se uživatelům AVR ani nezdá a výkonostně je to úplně nesrovnatelné.

Vroutku ->
Potřeboval bych s tebou něco probrat na skype, měl bys někdy chvilinku ?
24.06.2017 (08:54:44)  # IP X
Arambajk:
Tak asi není špatné na úplný začátek AVR v assembleru např. a vyzkoušet si jaké to je mít MCU plně pod kontrolou, ale od toho se člověk učí, aby šel dál do složitějších.
Bastlíř je o toho aby šel dál.
Někde se dočteš, že se nedá doma pracovat s moderníma součástkama, není to pravda, všechno se dá, jen se naučíš přesněji dělat desky a pájet, nacházet to co potřebuješ v čím dál tučnějších a na díly roztrhanějších datasheetech a je to furt stejný.
24.06.2017 (11:12:46)  # IP X
milan obalka :
Na to abych se naučil lépe používat AVRka jsem musel absolvovat pár hodin na střední na mikroprocesorech.
Musel jsem pochytit takové základní věci jak správně na to. a cajk. naučil jsem se vytvořit něco co funguje, sice neumím pořádně ještě programovat, ale funguje to.
Cčko jsem se nedokázal taky naučit uplně sám.
na ARMech to bude semnou určitě uplně stejný.
Já si umím sám něco udělat. já si vesměs vše udělal sám, jen jsem potřeboval nakopnout.
Asi budu muset načerno chodit na předmět o ARMech, protože nechápu, proč se MCUčka učej až v podledním roce studia, vesměs zároveň s tvorbou bakalářky/diplomky, kde je tento MCU.
24.06.2017 (22:59:34)  # IP X
Scotchlok:
Nechci srovnávat architektury těch mikroprocesorů, je jasné že jsou nesrovnatelné. Chtěl jsem jen poukázat na několik drobností.
Za prvé, obyčejný bastlíř, začátečník, mírně pokročilý, nepotřebuje všechny ty vymoženosti a periférie. To stejné platí i pro spoustu jednoduchých aplikací. Chce jen co nejjednodušeji ovládat nějaký jednoduchý obvod. Teď zde nehodlám uvádět jeden příklad za všechny, protože by se tato debata nejspíš zvrhla na řešení toho příkladu vhodnější metodou, každý zde si dovede představit takový příklad sám.
Za druhé, takový bastlíř z bodu jedna, který ještě téměř vůbec neumí programovat, když uvidí mikroprocesor který sice všichni okolo chválí a vzývají až skoro do nebes. Ale ke kterému je pět datasheetů s rozsahem 100 až 1000 stran textu, minimum dostupných příkladů a jak jsem se i sám přesvědčil, minimální ochota mu pomoct. A pak uvidí, třeba to AVR-ko, stovky příkladů i se základy C-čka nebo assembleru a vůbec jakýmsi uvedením do programování, většinou i podrobně vysvětleno jak ten program i sestavit a nahrát do mikroprocesoru, desítky diskuzí a fór, kde už je většina problémů rozepsaných a vyřešených. Řekl bych že zvolí asi tu druhou variantu.
Teď jak to píši, dochází mě že to stejné lze napasovat i na to Arduino, které mě osobně ale přijde jako opačný extrém. Ale to už je na jiné povídání.
24.06.2017 (23:22:56)  # IP X
VroutekB:
No jasně, nikdo by neměl používat nic moderního, levnýho. Ono je totiž lepší tu fňukat, že 10 let staré 8bitové šitko od atmelu stojí 2 stovky a neumí ani interrupt na změnu stavu na libovolném pinu. Hlavně že je to AVRko dokonale jednoduché a je na něj spousta návodů **38
25.06.2017 (01:09:05)  # IP X
Scotchlok:
Nikde jsem snad netvrdil že by ty vaše STMka neměl nikdo používat, to prosím takto nepřevracejte. A pokud jsem to někde uváděl, tak se hluboce omlouvám ale asi jsem se špatně vyjádřil, to se mi občas stává. Snažím se zde tvrdit, že to není pro začátečníky moc uživatelsky přívětivé, jak po softwarové tak vlastně i po hardwarové straně věci. Že není úplně jednoduché se s tím naučit, zvláště pak když daný člověk nemá předchozí zkušenosti a chce začít, jak se tak říká, na zelené louce. Možná že je to jen mým nedostatečným rozhledem ale nenalezl jsem na internetu snad jediný kvalitní návod pro nováčky v programování s mikroprocesory řady STM. Přitom pro ty 8-mi bitové architektury jich je poměrně dost. Právě proto mi přijde snazší začít s 8-mi bitovou architekturou, pořádně se na tom naučit jazyk, veškeré programátorské fígle a pak teprve se začít zabývat třeba tím STM nebo jinou obdobnou rodinou. Ale budu rád když mě vyvedete z omylu.
25.06.2017 (10:31:16)  # IP X
VroutekB:
Jestli si našel jenom jeden tutorál, tak asi neumíš hledat. A vlastně, na co furt nějaký tutoriál? Ještě utřít prdelku bys nechtěl? Až po tobě v práci hodí třeba Blackfinem a budou po tobě chtít do něj naprogramovat SDR rádio, tak co? Radši dáš výpověd, protože na to nebudou nikde tutoriálky na utírání prdelky?
Se buď hryzni (a nejenom ty) do svého vlastního kaďáku a prostě se něco naučte, nebo tu jinak přestaňte fňukat.
Každá rozumná firma má stohy aplikaček, jak jejich produkty používat, od začátku do konce. (Ale to že to lidi ani tak nečtou, je už další věc..)
25.06.2017 (14:24:25)  # IP X
8-bit obalka (web) :
Ale tak nalijme si čistého vína a řekneme, že tohle je prostě prasárna a u jiných, podobně nebo víc výkonných procesorů stačí místo tohohle nastavit 2 až 3 registry (a to ještě ani v tom kódu pro STMko nemám povolení interruptů což byla další plechovka červů) **22

// ____ ____ // X +--+ XO | | / | ____ ____ // ### |25M +---+PLLM+---+ | | / | // +--+____| |____| |VCO +-+-+PLLP+-+-sysclk // +-+____| | |____| | // | ____ | ____ | // | | * | | | / | | // +-+PLLN+-+-+PLLQ+-)-gpioclk // |____| |____| | ____ // | |/MCO| // +-+1PRE+---MCO1 // |____| // 25 /16 1,5625 300 /2 150 << sysclk // *192 /6 50 << gpioclk // /3 50 << MCO1 RCC->CR |= RCC_CR_HSEON; // spustit XO while(!(RCC->CR & RCC_CR_HSERDY)); // pockat na stabilizaci HSE FLASH->ACR = 4 << dekkt(FLASH_ACR_LATENCY) | FLASH_ACR_PRFTEN | FLASH_ACR_ICEN | FLASH_ACR_DCEN; // FLASH delicka RCC->CFGR = 5 << dekkt(RCC_CFGR_MCO1PRE) | 3 << dekkt(RCC_CFGR_MCO1) // delicky pro periferie a MCO (50 M) | 5 << dekkt(RCC_CFGR_PPRE1) | 4 << dekkt(RCC_CFGR_PPRE2); // 37,5 a 75 M RCC->PLLCFGR = 0x20000000 | 6 << dekkt(RCC_PLLCFGR_PLLQ) | RCC_PLLCFGR_PLLSRC //PLL | 0 << dekkt(RCC_PLLCFGR_PLLP) | 192 << dekkt(RCC_PLLCFGR_PLLN) | 16 << dekkt(RCC_PLLCFGR_PLLM); RCC->CR |= RCC_CR_PLLON; // spustit PLL while(!(RCC->CR & RCC_CR_PLLRDY)); // pockat nez se stabilizuje PLL RCC->CFGR |= 2 << dekkt(RCC_CFGR_SW); // prepnout SYSCLK na PLL z = 100; while(z --); RCC->APB2ENR |= RCC_APB2ENR_TIM1EN | RCC_APB2ENR_TIM8EN | RCC_APB2ENR_SYSCFGEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOEEN; z = 100; while(z --); GPIOA->AFR[0] = 0xB0000BB0; // 1=REFCLK; 2=MDIO; 3=INT#; 7=CRS; 8=MCO GPIOB->AFR[1] = 0x00BBB000; // 11=txEN; 12=txD0; 13=txD1 GPIOC->AFR[0] = 0x00BB00B0; // 1=MDC; 4=rxD0; 5=rxD1 GPIOA->MODER = 0xA8028029; GPIOB->MODER = 0x0A900280; GPIOC->MODER = 0x55555A59; GPIOE->MODER = 0x00015555; GPIOA->OSPEEDR = 0xFFFFFFFF; //Nastaveni slew rate (max) GPIOB->OSPEEDR = 0xFFFFFFFF; GPIOC->OSPEEDR = 0xFFFFFFFF; GPIOD->OSPEEDR = 0xFFFFFFFF; GPIOE->OSPEEDR = 0xFFFFFFFF; PHYRES0; z = 1000; while(z --); RCC->AHB1RSTR = RCC_AHB1RSTR_ETHMACRST; SYSCFG->PMC |= SYSCFG_PMC_MII_RMII_SEL; //RMII RCC->AHB1ENR |= RCC_AHB1ENR_ETHMACEN | RCC_AHB1ENR_ETHMACTXEN | RCC_AHB1ENR_ETHMACRXEN | RCC_AHB1ENR_ETHMACPTPEN | RCC_AHB1ENR_CCMDATARAMEN | RCC_AHB1ENR_BKPSRAMEN | RCC_AHB1ENR_DMA2EN; RCC->AHB1RSTR = 0; PHYRES1;
25.06.2017 (14:40:52)  # IP X
VroutekB:
A teď co, si nám to nandal tím, že jsi vyrobil kus naprosto nečitelnýho hovnokódu? **13
25.06.2017 (14:50:05)  # IP X
8-bit obalka (web) :
Měl jsem místo toho použít knihovničku pro mrdujinisty? **23
25.06.2017 (14:53:09)  # IP X
VroutekB:
Stěžuješ si, že je to moc složitý, ale naschvál to tak děláš. Dobře, už tě chápu, to mi stačí. **04
25.06.2017 (15:18:29)  # IP X
Scotchlok:
Musím přiznat že elektronikou se neživým, je to v podstatě něco jako můj koníček. Předpokládal jsem že tu celou dobu mluvíme o bastlířích kteří se tím taktéž neživý a je to také více méně jejich koníček. Profesionálové jsou samozřejmě úplně jiná skupina. Ti na to mají předpokládám patřičné školy a znalosti a většinou se v oboru nějakou dobu pohybují na té své profesionální úrovni.
25.06.2017 (15:26:46)  # IP X
8-bit obalka (web) :
>Scotchlok
**18 *neživí
Ale tak proč ne, někdy se prostě vyplatí koupit jednou za čas pomalé předražené AVRko než se učit jinou architekturu. Jenom bacha na to, že AVRko a ten dojebaný překladač taky obsahuje řadu pěkně zákeřných pastí.
25.06.2017 (15:28:56)  # IP X
8-bit obalka (web) :
Nemám rád knihovničky, protože je to obvykle plýtvání prostředky kvůliva toho, v knihovničkách bývá často vyloženě nasráno. Knihovnička bývá obvykle hůř zdokumentovaná než samotný HW a koneckonců se použitím knihovničky neušetří až tolik práce. Ergo, z mého pohledu se nevyplatí knihovničku používat **22 V tomhle se ale ani RXku nedostává ode mě žádného speciálního zacházení - na tom, že všechno programuju na úrovni registrů se nic nezměnilo už od dob co jsem dělal s 8051. Stačí mi iodefine a zavaděč. Že jsou některé architektury zbytečně komplikované tím pádem není moje chyba, pač u těch ostatních vůbec není problém takhle programovat. A vůbec, můžeš mi definovat, kdy je OK používat knihovničku pro mrdujinisty a kdy ne? Já jenom, že tady za to vždycky každého zjebáváš **23
25.06.2017 (15:34:16)  # IP X
VroutekB:
Za to ten tvůj hovnokód tady je opravdu výkvětem dokumentovanosti a čitelnosti. **02
Krom toho, měl sem pocit že tento thread se týká začátečníků, takže mi stále nedochází, kde je pro takového Milana nebo toho co se elektronikou neživý, aby nějakou STM32F030 zinicializoval třeba následovně:
void SystemInit(void) { RCC_HSICmd(ENABLE); while (!RCC_GetFlagStatus(RCC_FLAG_HSIRDY)) {} FLASH_SetLatency(FLASH_Latency_1); RCC_PLLConfig(RCC_PLLSource_HSI, RCC_PLLMul_12); RCC_PLLCmd(ENABLE); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLKConfig(RCC_HCLK_Div1); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08); }
25.06.2017 (16:21:48)  # IP X
8-bit obalka (web) :
Ještě jsem se pořád nedozvěděl, kdy je OK používat mrdujinistickou knihovničku a kdy ne **02
A jinak to cos sem zkopíroval jen dokazuje, že inicializovat nějakou malou mrdku přes knihovničku je skoro složitější než inicializovat monstrum jako třeba RX71M na úrovni registrů **23


62N:
// vypnout CLK pro SDRAMku, nechat BCLK; BCK = 12.5M * 2 = 25M, PCK = 12.5M * 4 = 50M, ICK = 12.5M * 8 = 100M
SYSTEM.SCKCR = SYSTEM_SCKCR_PSTOP0_msk | 2 << SYSTEM_SCKCR_BCK | 1 << SYSTEM_SCKCR_PCK | 0 << SYSTEM_SCKCR_ICK;[/code]

71M:
SYSTEM.PRCR = 0xA5 << SYSTEM_PRCR_PRKEY | SYSTEM_PRCR_PRC3_msk | SYSTEM_PRCR_PRC1_msk | SYSTEM_PRCR_PRC0_msk; // povolit te paranoidni veci menit registry oscilatoru SYSTEM.MEMWAIT = SYSTEM_MEMWAIT_MEMWAIT_msk; // pridat jednu latenci pokud je ICLK > 120 MHz SYSTEM.PLLCR = 1 << SYSTEM_PLLCR_PLIDIV | 0x27 << SYSTEM_PLLCR_STC; // 24M / 2 * 20 = 240 MHz SYSTEM.PLLCR2 = SYSTEM_PLLCR2_PLLEN_msk; // povolit PLL // FCLK = 240M/4; ICLK = 240M; BCLK = 240M/4; PCLKA = 240M/2; PCLKB = 240M/4; PCLKC = 240M/4; PCLKD = 240M/4; SYSTEM.SCKCR = 2 << SYSTEM_SCKCR_FCK | SYSTEM_SCKCR_PSTOP0_msk | SYSTEM_SCKCR_PSTOP1_msk | 2 << SYSTEM_SCKCR_BCK | 1 << SYSTEM_SCKCR_PCKA | 2 << SYSTEM_SCKCR_PCKB | 2 << SYSTEM_SCKCR_PCKC | 2 << SYSTEM_SCKCR_PCKD; SYSTEM.SCKCR2 = 4 << SYSTEM_SCKCR2_UCK; // UCLK = 240M / 5 = 48M SYSTEM.SCKCR3 = 4 << SYSTEM_SCKCR3_CKSEL; // zdroj : PLL
25.06.2017 (18:11:18)  # IP X
VroutekB:
Já zas stále nevím, co se tu snažíš dokázat. Všichni (aspoň ti, co sem delší dobu chodí) vědí, že píšeš programy načitelně jako prase a že máš rád věci složité (i když na ně nadáváš, že jsou složité). Tady máš thread pro začátečníky, tak nevím proč tu vytahuješ složitost velkých čipů s ethernetem, motáš páté přes deváté, a jsi tentokrát ještě víc mimo hejtovací mísu, než já. Bravo, cíl trolla jsi zřejmě splnil. **29
25.06.2017 (18:20:41)  # IP X
8-bit obalka (web) :
Nečekaně, žádná odpověď **02
A o té čitelnosti kódu bych radši pomlčel když návratové hodnoty funkcí z knihovničky nemají jména, ale čísla **23
25.06.2017 (18:38:42)  # IP X
8-bit obalka (web) :
"Já zas stále nevím, co se tu snažíš dokázat."

Sis skoro odpověděl sám - že STMko je zbytečně složité a může být občas vypoženě děs to používat **22
25.06.2017 (20:10:59)  # IP X
VroutekB:
STM32 jsou strašně složitý. Přiložíme kilometr hovnokódu, zesložitíme o zbytečné makro protože neumíme ty konstanty používat (nebo to spíš předstíráme), přimalujeme obrázek s PLL, přihodíme konfiguraci GPIO magickými čísly (aby to bylo lépe čitelné) začmachrujeme s resety periferií a externího obvodu pomocí jiného makra.

RX71 jsou strašně jednoduchý. Přiložíme jen výňatek inicializace, ethernet zde vynecháme, nastavení GPIO taky vynecháme, nastavení 50MHz CLK pro RMII nepotřebujeme, externí obvod neresetujeme. Ale je to kratší žejo, účel to splnilo **02
25.06.2017 (20:55:33)  # IP X
8-bit obalka (web) :
nechtělo se mi ti přebírat tak jsem to zkopíroval celé. Každopádně prasokód je pro F407, takže asi by bylo vhodnější jej srovnávat s inicializací podobně velkého procesoru, což je 62N (to je ten 1 řádek kódu) **22

A jinak RMII fakt nepotřebuje nikde nastavovat 50MHz CLK protože jej generuje fyzická vrstva. Kdybys nepoužíval nějaké prehistorické PHY se 100 piny tak bys to věděl taky **23
25.06.2017 (21:21:19)  # IP X
8-bit obalka (web) :
A ti dám že "neumíme používat konstanty". Schválně jsem se podíval do stm32f4xx.h a opravdu je tam vše definováno jako maska. Můžeš mi prozradit, jak bity RCC_CFGR_MCO1PRE nastavím třeba na hodnotu 5 když ta konstanta je definována jako 0x07000000? Leda tak makrem dekokotizace: **02

// dekokotizace (prevedeni masky z kokoti knihovny na bitovy offset) #define dekkt(k)(k&0x00000001 ? 0 : k&0x00000002 ? 1 : k&0x00000004 ? 2 : k&0x00000008 ? 3 : k&0x00000010 ? 4 : k&0x00000020 ? 5: k&0x00000040 ? 6: k&0x00000080 ? 7: \ k&0x00000100 ? 8 : k&0x00000200 ? 9 : k&0x00000400 ? 10 : k&0x00000800 ? 11 : k&0x00001000 ? 12 : k&0x00002000 ? 13: k&0x00004000 ? 14: k&0x00008000 ? 15: \ k&0x00010000 ? 16 : k&0x00020000 ? 17 : k&0x00040000 ? 18 : k&0x00080000 ? 19 : k&0x00100000 ? 20 : k&0x00200000 ? 21: k&0x00400000 ? 22: k&0x00800000 ? 23: \ k&0x01000000 ? 24 : k&0x02000000 ? 25 : k&0x04000000 ? 26 : k&0x08000000 ? 27 : k&0x10000000 ? 28 : k&0x20000000 ? 29: k&0x40000000 ? 30: k&0x80000000 ? 31: 0xFF)
26.06.2017 (23:47:17)  # IP X
milan obalka :
jojo, fakt super. já tomu vašemu kodu absolutně nerozumím, nevím proč jak a z jakého důvodu tam je kterej řádek.
Když jsem to navrhoval, tak se nikdo nenašel, kdo by mi pomohl s tím, začít s army a v arduinu jsem to dělat nechtěl.
Postavil jsem to na AVRku a bylo to hned jednoduché. dělali jsme s tím ve škole, takže veškeré problémy a triky mne naučili při hodině.
Se zbytkem jsem se musel povztekat sám a tak tak jsem to stihl. s ARMem bych aktuálně maximálně blikal ledkou, když už bych po pul roce našel vhodnou kombinaci programů pro vývoj na STMko.
A ještě každý člověk doporučuje něco jiného.
A co bych dělal v práci? no naučil se to. od toho tam jsem osm hodin denně abych na tom dělal a dělám jen na tom.
Jenže když sem dělal během školy tak musím melouchařit, studovat, dělat kvantum zkurvených protokolů a pak mi možná hodina denně zbyde na něaké pokusování, kterou zabiju tím, že chcípnu na únavu.
27.06.2017 (10:42:22)  # IP X
medvídek obalka :
Od čeho máš youtube ?
Je tam kvantum těch návodů, kde někdo kódí a vysvětluje proč a jak...
A jsou tam videa, jak pro HAL, tak lidí, co píšou v registrech.
27.06.2017 (14:30:33)  # IP X
RayeR (web) :
Hehe, uz jak sem precetl prvni milanuv prispevek, tak mi bylo jasne, co bude nasledovat a neprekvapive taky jo, no a ja asi nebubu vyjimkou :)

Milane, kolik tech MCUcek potrebujes? Pokud je to kusova zalezitost pro 1 bastl, tak bych to vubec neresil, za usetreny cas a nervy se to porad vyplati. Ja sem nedavno delal 2 bastly, kde sem mel pomerne jasne stanoveny deadline, takze sem sahl po AVRku, protoze ho uz dobre znam, mam na nej napsane drivery, rozbehany toolchain o jehoz chybkach vim, takze mi sla prace rychle od ruky a za par noci sem to opravdu napsal. Vedel sem, ze u STMka bych mohl narazit na naky zasek s kerym by mi nikdo nepomohl a nemusel bych to stihnout. Procaky sem mel v supliku, takze cenu sem neresil. Nicmene sem projekt potreboval dale rozsirit, takze sem tam nahradil Atmegu324P za Atmegu644A-PU, ktere jsou velmi kompatabilni, jen ma vic pameti. Koupil sem ji v TME za 130Kc ale koukam, ze uz neni skladem - asi sem je vykoupil :) Dokonce ji kurvy zdrazili na 143Kc, coz se da ocekavat, ze Mrdkocyp na tom bude chtit taky neco trhnout. Jako nahradu muzes pouzit tu zminovanou Atmegu324A-PU (predpokladam, ze to chces v DILu) za 120Kc http://www.tme.eu/cz/details/atmega324a-pu/mikroproceso...
Pro budouci projekty ale doporucuju se s tema STMkama v klidu postupne zkamaradit, ty ceny sou proste bezkonkurencni, proti tomu se nic namitnout neda.
Jen me tady pride trochu rozporuplne, ze Vroutek odsuzuje cokoliv Mrdujino-knihovny, ale na STM sou knihovny a klikaci mrdky OK? Nebo jak tomu mam rozumet? Dobry programator by to mel umet resit na urovni registru, coz neni zrovna jednoduche a rychle na nauceni. BEzny bastlir asi pouzije Cube/mbed a pod a neresi.
A kdyz uz bylo zmineno to psani kodu s vyuzitim definic a symbolickych konstant, tak tohle je ukazka, co lze tez najit v Cube - vrchol prehlednosti, ze...
RCC->CR |= (uint32_t)0x00000001; RCC->CFGR = 0x00000000; RCC->CR &= (uint32_t)0xFEF6FFFF; RCC->PLLCFGR = 0x24003010; RCC->CR &= (uint32_t)0xFFFBFFFF; RCC->CIR = 0x00000000;
27.06.2017 (14:47:20)  # IP X
bkralik (web) :
No, nevím jestli mi chce ještě víc prodlužovat tohle vlákno, ale musím taky přihodit trochu do mlýna. Mně STDPeriphLib přijde daleko lepší v tom, že to jsou prakticky jen funkce obalující přímý přístup do registrů tak, aby to bylo čitelnější. Zatímco knihovny u Mrdujína mi přijdou jako hrozně invazivní, příliš mnoho abstrahují od dané reálné věci.

Příklad co myslím - blbej timer:
u STMka musí nahodit hodiny periferii, nakonfigurovat timer, nahodit přerušení v nvicu, pak nahodit přerušení na timeru a nakonec si napsat vlastní routinu. U všeho máš přehled co to dělá a upřímně je mi jedno jestli píšu
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
nebo
RCC->APB1ENR |= RCC_APB1Periph_TIM2;
Zatímco u Arduina prostě jenom napíšeš
delay(100);
27.06.2017 (21:34:24)  # IP X
RayeR (web) :
>bkralik
Tak to zalezi co na STM pouzijes, v tom mbedu to bude taky neco na zpusob delay(100). A StdPL pokud vim konci, na novy STM32L uz je jen Cube, kery sice ma nekoliv vrstev (HAL/LL) ale nejak se mi nelibilo ani jedno.
Přezdívka:
Heslo:
Text: