Fórum témák

» Több friss téma
Fórum » PIC programozás assemblyben
 
Témaindító: sonajkniz, idő: Máj 30, 2015
Témakörök:
Lapozás: OK   24 / 24
(#) sonajkniz válasza sdrlab hozzászólására (») Szept 22, 2020 /
 
Idézet:
„Tényleg nem látod át, amiről beszélsz!”

Tényleg nem tudsz olvasni? Akárcsak rolandgw?
Vagy csak addig olvasod, amíg beleköthetsz?
Tedd már meg, hogy végigolvasod és értelmezed mindazt amit eddig leírtam!
Többen is rágjátok ugyanazt a csontot, amit én sem tagadtam eddig sem. Csupán annak adtam hangot legutóbb, hogy a hardverek értelmetlen sokfélesége, inkompatibilitása miatt
csak egy bonyolultabb, hosszabb könyvtári fájl képes viszonylag nagyszámú különböző hardveren is elfutni!

Mivel én is írtam már olyan, többféle PIC18-on is elfutó LCD kezelő programot, ami belső oszcillátor használata esetén 500KHz-s órajeltől 16MHz-s órajelig automatikusan korrigálja az időzítéseket is, így tudom, hogy miről beszélek!
(#) usane válasza sonajkniz hozzászólására (») Szept 22, 2020 / 4
 
Lehet, hogy engem is megkövezel érte, de elmondom mi a baj. Kiemelve a cikket it. Előre leszögezem, tudom milyen érzékeny vagy, ne vegyél semmit sértésnek, minden tiszteletem az assemblyben elért és készített dolgaidért.
Semmi baj, hogy te foggal körömmel ragaszkodsz az assemblyhez. A baj az, ahogy azon többiekhez állsz akik nem ezt teszik. Ez a baj a cikkel is. Csak le kellet volna írnod mi mindent lehet csinálni assemblyben egy "apró" 8 bitessel, kihagyva az Arduino és magasszintű nyelvek lenézését és akkor nem indult volna el ez az egész.
A másik dolog, hogy hobbistáknak címezted. Kit tartasz hobbistának? Ahogy Bakman is leírta sokan csak örülnek ha valammit programozhatnak és látják a végeredményét, nem feltétlen akarnak belemélyedni az assembly és ezáltal a vezérlő részletes rejtelmeibe. Továbbá nem mindenki tud vagy akar NYÁK-ot gyártani PIC-ekhez. Az Arduino boardon ott vannak a csatlakozók, csak összedugdossa és kész. Igaz PIC-et is összelehet breadboardon. PIC-hez kell egy PICkit. Az Arduinohoz csak egy USB kábel. Vagy az már nem hobbista? Nem védem egyik oldalt sem. Én PIC-el kezdtem. Assemblyt a PIC-en tanultam meg. Ma már nem használom, csak ha kell. Miért? Mert 8 bites már nem volt a kezemben szerintem 5 éve. Ugyanazon az áron több erőforrással lehet kapni jobb vezérlőt. Hiába szajkózod, hogy erőforráspazarlás. Az a baj, hogy te csövön keresztül nézed a világot és szeretnéd azt a saját nézetedhez igazítani. Márr nem a 80-as években vagyunk. Már nem elég egy 2x16 karakteres LCD-re kiíratni egy hőmérsékletszenzor adatait 1-2 nyomógombbal. Az érintős HMI-k és hasonló finomságok korában vagyunk. Igen, van jogosultsága a 8 biteseknek is, és az assemblynek is. Nyilván például egy autó távnyitóba nincs értelme "I9-es PC-t" rakni bár manapság már a távnyitók is távolságot, mozgást, ujjlenyomatot mérnek, kávét főznek. Lassan a WC-t sem tudod lehúzni update nélkül, de ez van. Megszoksz vagy megszöksz.
Idézet:
„Mi a fenéért kell csak a PIC18F szériából kb. 500 fajtának lennie?”

Gazdaságpolitika. Ezt egy pár képekből álló óvszerreklám anekdota tudná leírni. Nem idevaló. Kicsit hosszú lett, de nem kívánok hozzászólni többször.
(#) Moderátor hozzászólása Szept 22, 2020
 
Kérjük, hogy a témára koncentrálva értekezzetek tovább, semelyik olvasó nem kíváncsi a személyes ellentéteitekre, ezek lerendezésének helye nem a fórum.

Köszönjük.
(#) tanyasy hozzászólása Okt 7, 2020 /
 
Jó napot, sziasztok ! Szerintem mindenki abban programoz ami neki szimpatikusabb, nekem 8 bites pic-eknél az assembly jön be jobban. Régen a comodorokra is erőltették a basicet, de az igazán gyors nagy progikat gépi kódban írták rá. Mostanában egy kis cnc-t építgetek arduino grbl vezérlővel, viszont a léptetők helyet "ablaktörlő" motorokat alkalmaztam és pic 16f628-ra irtam szervó vezérlőt assembly-ben. Bővebben: Link
(#) STamás hozzászólása Nov 11, 2020 /
 
Sziasztok!
Teljes terjedelemben elérhető valamerre ez a könyv? Kerestem de csak a 70. oldalig van meg.
Köszönöm!
(#) Pali79 válasza STamás hozzászólására (») Nov 11, 2020 / 1
 
A bookline-on van egy antikvár példány.
(#) pls hozzászólása Dec 17, 2020 / 3
 
Most botlottam bele a Jún 5, 2020 -i cikkedbe. 100%-ban egyetértek vele.
Egy gép minden adottságát csak assembly-ben, közvetlen gépi kódban lehet kihasználni. A készen kapott moduloknál már kötve vagy másokhoz. A modulok által ki nem használt lehetőségektől el vagy zárva, vagyis nem teljesen tiéd az az eszköz.
Amikor én programozni kezdtem, a cégnél, ahol dolgoztam, még másik gép sem volt, amin az assebler futott volna. Közvetlen gépi kódban írtam a programot epromba, 3,6 MHz-es 8085-ös processzorra. Nem elírás, MHz és nem GHz! 4kbyte-os epromnál akkor még nem lehetett nagyobb epromot kapni, ebbe kellett elférni. De elfért benne egy liftvezérlés, vagy egy raktári rakodó robot programja. Integrált áramköröket tartalmazó kártyákat tesztelő automatába már 8 db 4 kbyte-os eprom kellett, de a működtető program itt is elfért 4 kByte-ban, a többi a kártyák adatait tartalmazta.
Minden bit számított duplán is. Egyrészt mert kevés volt a memória, másrészt pedig a lassú processzor miatt hosszú programnál a végrehajtási idő annyira megnőtt volna, hogy a lift nem egy szintben állt volna meg az emelettel, vagy a robot a villáját nem a raklap alá tolta volna, hanem a polcba vagy a csomagba. Hiba nem lehetett benne, mert az nagy kárt tudott volna okozni, akár emberéletet is követelhetett volna. Egy olyan szószátyár programmal, mint a mai modulok, megoldhatatlan lett volna. És ki tudja, mennyi hiba van egy ilyen hosszabb programmodulban! Nem véletlen, hogy olyan nagy divat manapság a frissítés!
(#) silent15 válasza pls hozzászólására (») Jan 6, 2021 /
 
Sziasztok!

Gondolkoztam már, hogy én is hozzáfűzök pár gondolatot, most jutottam el időben odáig:
Szerintem a maga módján mind a két "tábornak" igaza van. De ahogy olvasom a hozzászólásokat, mindenki elfelejti az egyik legfontosabbat. Mindennek meg van a maga helye. A távirányítós példát használva, simán mehet assemblyben. Legyen tömör, férjen el akár egy pici memóriával rendelkező kontrollerbe is.

Másik oldalról megközelítve, lehetetlen a mai komplexitású eszközöket tisztán assemblyben megírni. Amikor C kódból is több ezer, tízezer sor jön össze, senki ember fia nincs, aki ezt értelmes időn belül (értsd, amíg anterioritási időn belül van) megírja. Assembly-t szétosztani fejlesztők között pedig szerintem megint nincs értelme. Ha csapatban írják a kódot, akkor se fogják az egészet átlátni, ha egyedül, akkor pedig az ember képességeinek határa miatt nem fogja tudni egyben kezelni, nem is beszélve arról, hogy ember legyen a talpán, aki a különböző assembly modulokat integrálja majd. Így odakanyarodtunk, hogy nem lesz biztos a működése, nem biztos hogy azt fogja csinálni ahogy azt elképzeltük. A C és hasonló "magas" nyelvek ezért szerencsésebbek, mert könnyebb őket szétosztani kis modulokra és utána összerakni is egyszerűbb.

Komplexitásból egy gondolat: egyre több beágyazott rendszeren használnak már valamilyen mesterséges intelligenciát. Ha csak a járműipart nézzük és azt, hogy haladunk az önvezető autók felé (nem mondom, hogy túl gyorsan, de haladunk), egyre több és több szenzor információit kell egy időben feldolgozni. Ezekre már nem lehet felírni még bonyolultabb függvényeket se. Egyszerűen olyan nagy számú bemenet van, ami szinte felfoghatatlan mennyiségű kimenetet képes előállítani (És az autós példánál nem csak egy kimenetet szeretnénk előállítani, hanem szintén többet (kormány, fék, gáz, stb.)). Itt megint ott tartunk, hogy neurális hálókat nem fogunk tudni assemblyben létrehozni, magasabb absztrakciós szintre kell emelni.

A hibákhoz és a frissítéshez még annyit fűznék hozzá, hogy régen is voltak hibák, csak akkor még esély sem volt kijavítani. Másfelől egyetértek, hogy csábító lehet annak a tudatában kiadni valamit, hogy majd úgyis kijavítjuk később...

Lezárva, azt érzem, hogy többen ragaszkodtok a régebbi technikákhoz, technológiákhoz, de ismét kiemelném, hogy mindent a maga helyén kell kezelni. Se a régi se az új nem rossz.

Sziasztok!
(#) sonajkniz válasza silent15 hozzászólására (») Jan 6, 2021 /
 
Idézet:
„hogy mindent a maga helyén kell kezelni”

Ebben neked igazad van. De az én véleményem az, hogy vannak olyan területek, ahol nem szabad túlzásba vinni az elektronikázást.
Ilyen pl. az autóipar. Már lassan bonyolultabb, komolyabb számítógépek lesznek egy autóban, mint egy repülőben. Csakhogy, míg egy repülőben minden rendszerből több van, azaz ha egy meghibásodik a másik átveszi a helyét, ráadásul bőségesen van idő adva a fejlesztésekre, a programokra, a tesztelésekre, addig az autóknál ez nincs így. Belegondolva, hogy a légi-katasztrófák nagyrészt a technika hibájából adódnak annak ellenére, hogy tényleg mindent megtesznek a mérnökök, kissé tartok az autóelektronikától. Mindemellett a mai autók a mi érdekünkre hivatkozva döntenek helyettünk. Pl. a BMW jelzi, hogy szervizintervallum van. De nekem halaszthatatlan dolgom van az ország másik végében, jobb ha kölcsönautóval megyek, mert a hiper-szuper BMW félúton megtagadhatja az utazás folytatását. Megtörtént eset ismeretségi körben. Vagy vagyok olyan rutinos sofőr, hogy gyufásdoboznyi helyre is be tudok állni, de a parkolóasszisztens nem engedi. Autókban már jó pár éve van ráfutásgátló rendszer. Ami esetenként még jó is lehet, ha elbambul az ember. Ám ha előzni készülök és ezért rágyorsítok az előzni kívánt jármű mögött, hogy amint a szembejövő elsuhant, már lendületből előzhessek, és a komputer befékez, epét hányok. Ugyanez a rendszer újabban bekerül már a motorkerékpárokba is. Csakhogy a motoros egy ilyen helyzetben akár fel is bukhat.
Egyetértek veled abban, hogy millió soros assembly programot egyszerűen lehetetlen írni, de olyan eszközökbe, amiken életek múlhatnak, olyan programnyelven összetákolt szoftvert tölteni, aminek a belső működését, esetleges hibáit nem látja át a fejlesztő, nagyfokú felelőtlenség.
(#) silent15 válasza sonajkniz hozzászólására (») Jan 6, 2021 /
 
Itt még egy gondolatot hozzáfűzök ehhez, ezután lezárom, nem szeretném túlhúzni a dolgot:
Igazad van, sok esetben szükséges hogy megbízható legyen egy-egy rendszer, de ezek már tényleg olyan komplexek, hogy nem lehet ennyire hardver közelien kezelni.

A repülőről a Boeing 737 MAX jutott eszembe, ez a duplázás se jön össze mindig. Amíg ember tervezi, hibázni fog...

Visszatérve a autóipari biztonsághoz: Érdemes rákeresni az ASIL rendszerre. Ha megnézed a különböző kockázatú rendszerek különböző besorolást kapnak. A a legkisebb kockázatú, D a legnagyobb. Ami képes befolyásolni a jármű irányát, sebességét, stb., tehát aktívan beleszól a vezetésbe, azok mind D, esetleg C. Én is az autóiparban dolgozok (nem ezért védem, azért ott is látni cifraságokat), és meg kell mondjam, a D elérése azért nehéz. Ebben rengeteg követelmény van, kockázatelemzéssel és nem utolsó sorban a minőségellenőrzés ahogy haladunk a D felé, egyre durvább. D-nél mindennek is le kell dokumentálva lennie (kis túlzással persze) és a teljes fejlesztésnek D ként kell folynia, nincs az, hogy elkezdjük A-ban, majd a végére rájövünk, hogy milyen jó kis termékünk lett, dobjuk ki D-ben, így több lesz a pénz...
(#) brazdas hozzászólása Feb 25, 2021 /
 
Sziasztok!
Valahogy megmaradtam, a PIC assembler programozásában, nem váltottam át C-re, és az PMLAB-X-re. Az MPLAB 8.92 verzióját, és a PICKIT3-at használom. Most viszont szükségem lenne a PIC18F27K42, nagyobb 128k program memóriájú típusra, de sajnos az MPLAB ezen verziója nem ismeri, nincs ilyen .inc file. A Microchip oldala annyira megváltozott a váltás óta, hogy semmit nem találok, még az MPLAB letöltésket sem, gyanítom, hogy nincs is már...
Azon kivűl hogy áttérek az MPLAB-X-re, szerintetek mit lehet tenni?
(#) Hp41C válasza brazdas hozzászólására (») Feb 25, 2021 /
 
Nem sok lehetőség maradt:
Idézet a mplabx-ide-v5.25-release-notes-00.zip -beli Readme for MPASM Assembler.htm -ből:
Idézet:
„MPASMWIN.EXE is the 32-bit Windows version of MPASM Assembler which is distributed with MPLAB IDE and MPLAB C18. It is supported on the following platforms (32- and 64-bit):
Microsoft Windows XP Professional SP3/ Windows 7 Professional/ Windows 8 Professional

Mostanában az MPASM helyett a Pic-as nevű képződmény van assembler helyett.

Az egyedülálló út a Microchip szerint a C, az XC8. Az is leginkább a bérelhető optimalizálással.
(#) Peter65 válasza brazdas hozzászólására (») Feb 25, 2021 /
 
Szia!
Több okból én is assemblyben fejlesztek, de váltottam, a PIC-ek helyett az ST processzorait használom. Itt is elég rögös az út, de mind a 8 bitesek, mind a 32 bitesek esetében végül is járható. Van a 8 bitesek között is 128kB flashes is, bár valószínűleg nem csak ez a szempont a választásnál.
(#) cua válasza brazdas hozzászólására (») Feb 25, 2021 /
 
Azert egy darabig kell kalapalni a billentyuzeten mire megtoltesz 128k-t assembler-ben
(Persze nagy statikus adattablakkal mas a helyzet)
(#) nedudgi válasza cua hozzászólására (») Feb 26, 2021 /
 
Attól függ, honnan indulsz. Ha valaki már egy ideje fejleszt egy kontrollerre/processzorra, rendelkezhet olyan szubrutin, vagy makrókészlettel, ami sok memóriát igényel. "Magas" szintű nyelven sokkal kevesebb kalapálással, hamarabb el lehet jutni ebbe az állapotba. Mindez csak gazdasági kérdés - mennyi idő van egy feladatra.
(#) cua válasza nedudgi hozzászólására (») Feb 26, 2021 /
 
Ezert irtam, hogy assembler-ben. Par k program memoria folott (feladattol fuggoen 4k-8k folott) en mar C-t hasznalok, mert a meret mar kevesbe nyom a latban, mint a fejlesztes sebessege. De izlesek es pofonok
(#) majkimester válasza brazdas hozzászólására (») Feb 28, 2021 /
 
Nálam 5.30-as MPLAB X van fent, ebben benne van a MPASMWIN.EXE, nem tudom az újabbakkal mi a helyzet.

Itt mpasmx\mpasmx.exe néven van és támogatja a PIC18F27K42-et. Ezt az egész könyvtárak akár vissza lehet másolni a MPLAB 8.92 alá a MPASM Suite könyvtár tartalmát lecserélve, csak vissza kell nevezni MPASMWIN.EXE-re. Ez alatt vannak a .inc file-ok is, így az is lenne. (Próbáltam működik a fordítás vele 8.92 alól olyan PIC-cel amit a 8.92 támogat.)

De hiába az új fordító, ettől még a 8.92 nem fogja ismerni az új eszközöket, csak a korábbiakat lehet az új fordítóval használni ...

A 8.92 az MPLAB IDE\Devices alatt tárolja az infókat a támogatott eszközökről a *-.dev file-ban. Ilyet lehetne csinálni valami hasonló eszköz lemásolásával és megszerkesztésével, de ez kevés, mert a támogatott eszközök listáját a *.mmc fileokból (masterdb.mmc és 18bridge.mmc) veszi, amik meg binárisak, azokat nem tudod szerkeszteni.
(#) majkimester válasza brazdas hozzászólására (») Feb 28, 2021 /
 
A korábbi MPLAB verziók még mindig letölthetőek a Microchip oldaláról. Minden régebbi verzió elérhető ITT: Downloads Archive

Az aktuálism MPLAB X IDE meg ITT
Következő: »»   24 / 24
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem