To je dosť mylná predstava. Program v C sa dá písať tak, že keď vymením čip alebo dokonca hardware, kde sú piny inak využité, includuje sa iba iný header a na *.c nemením jediný riadok. Je pravda, že na to treba myslieť a program tak od začiatku stavať a dodržovať štábnu kultúru.
Ale pochybujem, že Ťa Bascom chráni aj proti zmene hw, t.j. že piny použiješ inak ako v predchádzajúcom projekte, aj keď na tie isté periférie.
Samotná zmena procesora je málokedy ako jediná.
Pokud budu zkušený programátor v C, tak nejspíš to tak bude. Pokud budu začátečník, tak s tím budu mít dost velké problémy. V bascomu můžu přeházet piny bez potíží pomocí alisaů.
Zkušený programátor tohle řešit nemusí, jelikož ví přesně, jaký mc má použít. Navíc má desítky či stovky knihoven a dalších rutin, jenž jako stavebnici použije. Tvořit tuto základnu od nuly je pro mě jako začátečníka velmi náročné na čas.
P.S. Jak se řeší elegantně výměna jednoho mc za jiný? Zajímá mě o způsob, jenž bych mohl použít já, jako začátečník, jenž o C neví skoro nic.
Moje jediná šance jako začátečníka se mě jeví v tom, že mc úmyslně silně předimenzuju, abych měl jistotu, že všechny funkce bezpečně zvládne.
Kolbaba.
Programuj si to v cem ti to lepe jde.
Bascom je vhodny na jednodussi projekty, protoze pokud neni crakly, tak zvladne jenom omezene mnozstvi kodu, na druhou stranu je to jednodussi k pochopeni a naprogramovani.
C je vhodne na jednodussi i slozitejsi projekty, na internetu najdes spoustu knihoven na cokoliv a kazdy zde na foru ti pomuze s tim co ti nefunguje… Taky trosku lepe pochopis jak to funguje, protoze se musis ridit datasheetem, coz v Bascomu nebylo podminkou.
Pokud zacnes psat program v C i jako uplny zacatecnik, tak i kdyz pote zvolis jiny procesor, existuji funkce najit a nahradit, pomoci kterych to predelas, nehlede na to ze si muzes vytvorit zvlastni soubor (hlavicka) kde si nadefinujes, co jak pouzivas a tak.
Pokud tedy zacnes projekt na AtMega8 a potom zjistis je pamet je moc mala, lze relativne jednoduse prejit na AtMega16 i kdyz jsi ten program nekoncipoval takto…
Pokud jsi v nejistote, muzes si zkusit nejaky projekt s ledkou (blikani, stmivani apod) na AtMega8 a potom to zkusit upravit pro AtMega16
->Kolbaba71
Docela dobrej způsob jak zvýšit portovatelnost programu (i mezi úplně různými rodinami MCU mapř x51 a ARM) spočívá v tom že oddělíš aplikační vrstvu (úmysl) od hardwarové vrstvy (prostředí).
Příklad: Mám grafický LCD a jednou je připojenej k AVR přes SPI a po druhé k ARM přes FSM. Tak vytvořím funkci PutPixel(x,y) a pomocí té můj program něco kreslí. Vnitřek funkce PutPixel bude na každém z těch dvou procesorů jinej ale zbytek programu zůstavá stejný.