[OT] Mel by takovy programator uspet u zkousky ?

Hfmcons hfmcons na gmail.com
Sobota Leden 28 16:50:59 CET 2012


:-), připadá mi to jako zápolení s Eclipse a jeho plugIny, ale s tím 
rozdílem, že Eclipse je free tak se to dá tolerovat zatímco 
MikroOdkrojku by měo jít o zákazníky. Ty problémy ale jsou u nich, IMHO 
běžné a přetrvávající. Neřekl bych, že to je primárně na škodu, nicméně 
by dizajnéři zasloužili nakopat s případným provětráním jejich odměn :-)
S pozdravem,
Miloš Dašek

Dne 28.1.2012 15:36, Petr Labaj napsal(a):
> Tak jsem se zase na chvili dostal k bastleni s PIC32.
> Chtel jsem pouzit nejake knihovny a dalsi SW, ktery Microchip
> poskytuje. Nestacim vychazet z udivu nad nedomyslenostma,
> kterymi je jejich SW prospikovavy.
>
> Od nejvyssi koncepcni urovne programu:
> Napr. udelaji klienta bootloaderu, ale ten ma zablokovane cteni
> a verifikaci do doby, nez chip naprogramuji, takze pokud
> klienta ukoncim a pustim znovu, tak pozdeji uz nemuzu zkontrolovat
> obsah MCU. Navic ten klient neumi nikam ulozit nastaveni
> parametru, takze pri kazdem spusteni musim naklikat IP
> adresu. Upravit se to da jen ve zdrojaku, ale ten je napsany tak,
> ze pro jeho preklad nestaci free verze Visual Studio Express.
>
> Pres koncepci ovladani periferii:
> Napr. driver pro jejich vlastni Ethernetovy radic ENC28J60
> je napsany tak, ze neumi vyuzivat IRQ, takze musi byt obsluhovan
> poolingem.
>
> Po nejnizsi uroven jednoduchych rutin.
> Nasledujici kousek programu je (c) by Microchip (snad se jeste
> i dnes muze citovat kousek zdrojaku).
>
> Docela by me zajimalo, pokud je zde nekdo kdo uci a zkousi
> programovani, jestli by student u zkousky uspel s takto napsanou
> trivialni rutinou.
> Faktem je, ze to vyresili "spravne", tj. vlastnosti popsali do Errata
> (zde nazvane Side Effects).
>
> PL
>
> P.S. Ano, vim, ze to muzu opravit. A taky jsem to samozrejme
> udelal. Ale to snad neni reseni. Uvedl jsem tady jen 3 priklady,
> ale mam pocit, ze muzu nahodne vybrat kterykoli blok zdrojaku
> a bude tam nejaka nelogicnost. Nebo je treba se s tim smirit
> a brat to tak, ze je hlavni, ze to "nejak" funguje ?
>
> P.S.2 Sorry za vylev emoci.
>
> /********************************************************************
> * Function:  delay_us()
> *
> * Input:   Micro second
> *
> * Side Effects: Uses Core timer. This may affect other functions using core timers.
>      For example, core timer interrupt may not work, or may loose precision.
> *
> * Overview:     Provides Delay in microsecond.
> *
> ********************************************************************/
> void delay_us(UINT us)
> {
>
>      UINT targetCount;
>      UINT bakupCount;
>      UINT8 loop = 0;
>      // Assert us not zero. This must be caught during debug phase.
>      ASSERT(us!=0);
>      // backup current count of the core timer.
>      bakupCount = ReadCoreTimer();
>      // Core timer increments every 2 sys clock cycles.
>      // Calculate the counts required to complete "us".
>      targetCount = countPerMicroSec * us;
>      // Restart core timer.
>      WriteCoreTimer(0);
>      // Wait till core timer completes the count.
>      while(ReadCoreTimer()<  targetCount);
>
>      // Restore count back.
>      WriteCoreTimer(bakupCount + targetCount);
>
> }
>




Další informace o konferenci Hw-list