16b a 32b PIC - zkušenosti s assembler, příklady zdroj. kódů

Zdravim,
Potřeboval bych někoho, kdo programuje 16b a 32b PICe v assembleru. Chtěl bych zkusit skočit také na 16b a 32b PICe a ne jen 8b a jelikož mají víc instrukcí a víc bitů než 8b tak bych se chtěl podívat a nějaké zdrojové kódy. Tak jestli by se našel někdo, kdo by mě nějaké kódy poskytnul na náhled?

:arrow_right: administrator: přejmenováno z "16b a 32b PIC - programuje někdo v assembleru ?"

Kdysi jsem zkoušel dsPIC30F4013 a ani jsem nerozblikal LEDku. Takže hodně štěstí. Je to už na C a ne na ASM.

ani bych se asembler nepoukoušel - nic proti ale nová picka budou mít přímé programování přes usb něco jak TO-GOU , a jsou určena pro C o asembleru se tam ani nepíše ! Já upřímně řečeno taky koukám po večerech do C co a jak ačkoliv doposud mastím v ASM , ale na 16 či 32 a třeba i modul USB bez C pase

edit : spíše tuším jiný problém čím to kompilovat ? microchip kompílátor jen 60 dní ? od HI žádná optimalizace kodu nu děs běs ! to není krok v před nýbrž dva zpět ! něco napíši něco to přeloží a neznámý je výsledek ? no potěš vyhlídky na prd tomu říkám podpora ! neže by to nešlo v asm ale je třeba obětovat čas a napsat si vlastní list asi ?

Sice so 16-bitovymi PIC uz nejaky ten rok pracujem, ale toto sa mi nezda ani trochu. Mozete svoje tvrdenie podporit uryvkom z datasheetu?
Mimochdom urobil som aj nejake projekty v assembleri, s dsPIC30 a dsPIC33. Ich instrukcny subor je pomerne jednoduchy, lahko sa v nom pise a prisiel mi byt podstatne “citatelnejsi” a pouzitelnejsi na rucne programovanie nez povedzme instrukcny subor 8-bitovych AVR. Ale to je samozrejme len osobny dojem.

Kde sa nic nepise?
Ja som sa o programovani v asm pre 16-bitove PIC docital vela.

No nic Vam nebrani urobit si USB komunikaciu v asm. Napriklad pre PIC18 Microchip dodava len C zdrojaky, ale na webe sa daju najst konstrukcie napisane v asm.

Treba citat cele vety, nie len nahodne vybrane slova. Precitajte si este raz, co je tych 60 dni.

O tom nepochybujem, ale mne tieto dva kroky vzad prisli ako celkom napomocne :slight_smile: Ked som bol student, robil som iba s free nastrojmi od Microchipu, nic crackovane. Mal som C kompilatory, este aj debugger maju open-sourcovany.

A ked Vam asm zdrojak prejde cez assembler, vysledok je znamy? :slight_smile:

Clovek sa uci cely zivot. Pohrajte sa s C, uvidite.

Nevim jak na PIC v C, tak jsem chtěl zůstat v asembleru. Když používám MPLAB a PICkit2, bude tedy možné psát něco pro 16b a 32b PICe?

jaromir: mohl bych poprosit o nějaký zdrojový kód v asm?

koukám že po několika mněsících se to probudilo ! pokud jde o to přímé programování tak zatím to potvrdit nemohu nic z té nové řady zatím ke mně nedorazilo - pokud jde o c musím sklamaně podotknou je to hruza a příšerný žrout pamněti ! Netvrdím že nelze programovat aplikace pro 16b či 32b v asm ! ale netuším jak budeš vytvářet komunikaci pro USB port pod asm to bude dřina ! a po současných zkušenostech s C mám pochyby o jeho výkonosti pokud neberu že lze rychle udělat jednoduchou aplikaci - pokud jde o její ladění pod C no smůla ! Stále zustavám věren 8b a asm na vyšší se neženu bez rozumné komunikace do pc je to stejně pokrok na půl cesty a proto to zatím neudělám na co dsp když ta komunikace nebude ? Marně hledám někoho kdo dokáže tvořit programy pro pc pro komunikaci na USB - většina se zarazi a raději použije virtuální port přes usb - tudíž zas berle ! A já se to učit asi již nebudu ! Nic méně svátky se bliží tak se snad k nějakým pokusů s USB komunikací snad dostanu i já

PS: Omluvte pravopis dík

Ano, je to mozne. Tie 32-bity su o dost komplikovaniejsie. Nechcem Vas urazit, ale podla stylu Vasich otazok je zrejme, ze do tohto pola by ste sa nemali pustat. Pokial Vam z rozlicnych dovodov nevyhovuje 8-bitova architektura, napriklad potrebujete vyssi vykon alebo viac pamate, skuste siahnut po 16-bitoch.
Ja osobne by som siel na PIC24Fxxxx, resp. PIC24Hxxxx. Na rozdiel od vacsiny 8-bitovych PIC maju maximalne napajanie 3,6V, nominalne 3,3V - co je dane novsou vyrobnou technologiou. Co prinasaju oproti 8-bitom, je strasne vela, nechce sa mi vypichovat kazdy detail.
Ano, a na vacsinu z nich vystacite s PicKit2 v ulohe programatora a debuggera.

Co konkretne? Na aky MCU? Nejake su aj v adresari MPLAB-u.

Ale tak ako tak, bolo by zahodno poohliadnut sa po C. Microchip poskytuje zadarmo kompilatory pre svoje 8, 16 aj 32-bitove MCU, bez obmedzenia velkosti kodu, su integrovatelne s MPLAB-om a robi sa s nimi vyborne. Microchip taktiez ponuka velke mnozstvo kniznic a vzorovych kodov v C, namatkou spomeniem TCP/IP stack, USB stack (USB device aj master), dekodery obrazkov (JPG, GIF), pracu s pamatovymi mediami a FAT systemami atd…

Mozete byt presnejsi? Nestaviam sa do pozicie odbornika, ale ak si zaloztie nove vlakno s popisom toho, co je zle, mozeme sa na to pozriet. Jednocipy v C programujem uz nejaky ten piatok, tak by som sa mohol podelit o skusenosti.

Jeden USB stack pre PIC18F som mal v rukach a do znacnej miery som ho upravil, existuje este minimalne jeden dalsi, napisany cisto v C. Uznavam, ze napisat akykolvek USB stack je drina, bez ohladu na to, ci je to v C alebo v asm, ale v asm je tato praca o nieco pomalsia.

Aky je problem s ladenim aplikacii v C?

Len tak pre zaujimavost, Microchip ponuka vo svojich knizniciach aj ukazku pristupu z druhej strany, teda pre PC - pre Windows, Linux. Akykolvek kompetentny programator by to mal pochopit.

:smiley: A kolko mate rokov, ked ste rezignoval?

nu bereš to příliž do slovně ! ruku 43 , nerzignoval ale pokud to chci at to bezpečně pracuje raději asm - duvod je prostý asm mohu kdykoliv a temněř od kudkoliv zavolat témněř cokoliv v C už to tak jisté není ! a kompiler to mnohdy označí za chybnou syntakxi a pok provedep řeklad tak se taková volaní neprovedou ! ten to rozdíl mezi C a asm jsem nezkousl - jako příklad když mám několik vstupů jenž pruběžně monitoruji a předpokládám že v ktré koliv části programu mohu přejít na pod program který vše legálně zastaví v C se mi to bohužel nepodařilo jakmile se ocytám v vnoření nemohu zněj jen tak vyskočit a vše stopnou - mimo reset procesoru ! ale i toto se časem určitě poddá nicméně asm takové problémy nezná tudíž zatím jsem mu věrný .
Pokud jde o prostředky přímo od microchipu těch se nesmírně vážím a doujfám že budu moci o svátcích ktomu v poklidu sednou a s 18 si to poskoušet !
Když už jsi tady a spomínal jsi ty konstrukce na netu jenž mají aplikované USB a je k tomu i nějaký příklad zdrojového kodu rádi se na ně podíváme - věřím že nejsem sám ! ale bud jsem nemněl šastnou ruku a nebo jsem hledal něco jiného ale toto jsem zatím viděl jen po zřítku a jen jako hotové aplikace bez asm ?
Pokud jsi mněl větší štěstí dej sem odkaz prosím ?!

:slight_smile: neber vše co čteš ve forech úplně doslovně škodí to
já to píši při vaření nedělního oběda :slight_smile:

PS: omluvte pravopis dík

Mno, ja som uz taky! :wink:

No je to tak, ze treba sa naucit pracovat s C, potom sa v zasade nemozu stat take veci ako popisujete. Algoritmizacia v C je odlisna od tej v asm - napriklad je treba vyhnut sa konstrukciam s GOTO.
Ale toto su vsetko veci, ktore treba pochopit, naucit sa s nimi pracovat.

Ten Vas priklad som celkom nepochopil, ale to je asi vedlajsie :slight_smile:
Spravne pisete, ze sa to casom podda - ano, tak je to. S C treba pracovat a spoznavat ho, inak je to pomerne jednoduchy jazyk.
Ale co je podstatne, netreba nad nim lamat palicu hned ako nieco nejde. Ak by ludia zavrhli vestko, co nejde hned zo zaciatku, zavrhli by asi vsetko.
Aj ja som zo zaciatku s MCU robil iba v asm a C-cku som sa vyhybal ako cert krizu. Neskor som to nejak prekonal, v C som sa zlepsoval a teraz je to jazyk prvotnej volby pre profesionalne projekty.
Mimochodom, ako som sa naucil robit v C, ovplyvnilo to aj moje programy v asm - su lepsie, strukturovanejsie, lahsie citatelne a lepsie udrziavatelne.

Samozrejme, zima je skvela na zacatie novych veci… Ja som sa raz cez zimne sviatky dostal k mikrokontrolerom…
Investicia je nulova. Ak uz robite s PIC, mate programator, tak je to len o softwarovych nastrojoch.

Podstatna poznamka: Nezacinajte s C a PIC16! Tieto MCU nie su dobre na C kompilatory, preto aj k nim Microchip neposkytuje nijaky poriadny kompilator zdarma. Lepsie su PIC18.

No takze USB stack pre PIC18F v asm je trebars toto:
pe.ece.olin.edu/ece/projects.html
a dlha diskusia na forum.microchip.com je tu
microchip.com/forums/tm.aspx?m=89669

Iny stack je tu
embedinc.com/pic/usb.htm
a tejaka diskusia k tomu je tu
microchip.com/forums/tm.aspx?m=278560

Pracoval som s tym prvym, to druhe som netestoval.
Toto su veci v asm, C - to je ina otazka.

Takto - mne je to v zasade jedno :smiley:
Ide o to, ze mnohi zaciatocnici, alebo ludia nezorientovani v situacii to doslovne beru. Napriklad, mnohi ludia us doteraz presvedceni, ze PIC su horsie nez AVR. Okrem toho, ze to konstatovanie je miesanie jablk s hruskami, je to nezmysel.
Ale ludia prestali verit, ze Zem je plocha a nie gulata, tak snad sa k nim casom dostane aj tato informacia… :smiley:
A dobru chut k obedu…

já z atmely začal a mám je docela rád ale časem jsem nějak utekl na picka - jinak C je opravdu dobré v tom že pak asm vice člověk vytváří struktury Goto v C tahle fukce se asi mněla vynechat pro někoho kdo dělal v asm nemá význam ! Ale osobně jsem to nezavrhl chápu že používání knihoven žere místo a z tím souvisí fakt že při použití 18 řady a výše to člověka nebolí v pamněti je dosti místa ! Stejně tak nutno si v pro bleskové reakce na vstupy vytvořit přerušení a ne se pokoušet někam odskočit ! Ale ty deformace z asm jsou opravdu značné ! Jinak máš pravdu nic nelámat přes koleno !

Dík za odkazy koukneme až po nedělním úklidu

PS:omluvte pravopis dík

když to tak čtu tak mám pocit že programování 16b a 32b procesorů bude pro zkušenější programátory a pro složitější aplikace. Myslím že bych asi měl zatím zůstat u 8b procíků a nabírat zkušenosti. Zas tak dlouho s procesory nepracuju a asi nemám dostatečné zkušenosti na vyšší řady procesorů…

člověk šilhá po jiných procesorech až mu chibí periferie nabo pamnět !
Umne to byla pamnět- když se dostasneš za 3/4 pamněti se svým kodem v asm pak přichází čas najít něco většího - nové typy mají naštěstí procesory i z 2xpamněti u stejné typové řady ! pokud ale šáhneš joko my někteří na C pak je lepší te pamněti více ! v Principu ale nemusíš přecházet na 16b nebo 32b hned stačí přejít na 18f řadu ta se trochu již liší od těch nižších řad . A pokud čekáš více instrukcí tak mnoho znich je instrukce která existuje i 8b rozdíl je jen vtom že při delce kodové instrukce nemá smysl jen něco testovat a pak reagovat ,ale na vybrané časté případy se provádí test i reakce současně v jedné instrukci toto je jistá část těch instrukcí navíc ! ty další z pravidla souvisí i z hardwerem toho mcu . Více fukcí není znaméhnkem pro více dostupných operací ale hlavně rychlejší a efektivnější práci s kodem programu ! Pokud tedy píšeš pro 8bit a ovládáš jeho funkce pak při přechodu uvidíš ve spoustě funkcí funkci ne jednu ale dvě které již znáš tudíž až na vyjímky to problém nebude !

nelam to přes koleno

PS: omluvte pravopis dík

Pokial fakt len zacinate, tak potom je naozaj mozno dobrym napadom zostat u 8-bitov. Vacsinou su jednoduchsie ako vyssie rady MCU, to plati o vsetkych, a clovek sa s nimi lahsie zoznami.
Bariera medzi 8-bitmi a viac-bitmi je viacmenej iba psychologicka, a cim viac skusenosti budete mat, tym sa tato bariera bude lahsie prekonavat. A nejde len o programovanie, ale aj o navrh HW, volbu vyvojovych nastrojov atd…