Fórum témák
» Több friss téma |
Az includeban át tudom írni pic16f716-ra?
Sosem fejlesztettem a 16-os szériára, így erre nem tudok válaszolni.
Csak azt tudom, hogy a bankváltások miatt mindeképp bonyolódik.
Köszönöm Szépen! Még úgy látom sokat kell olvasnom erről a témáról.
Nem elég az include -ban átírni a típust.
A két típus adatlapját összehasonlítva a következő eltérések miatt a programot is át kell írni - 10F322 PWM modul van, a 16F716 -ban pedig CCP modul - 10F322 a kérdéses regiszterek a Bank0 -ban vannak, a16F716 -ban néhány a Bank1 -ben (OPTION_REG, PR2) - 10F322 -ben a GPR terület a 0x40 címtől van, a 16F716 -ban 0x20 -tól. - A PWM1 kimenet a 10F322 esetében a RA0, a 16F716 esetében a CCP1 A kimenete a RB3 lábon van. - A 10F322 -ben van belső oszcillátor, a 16F716 -ban nincs. Egyszóval van mit átdolgozni. A hozzászólás módosítva: Márc 1, 2021
Sziasztok!
Mit jelent a PIC nevei után a I/PT, E/PT, E/SS...stb? Azt tudom hogy a tokozáshoz van valami köze de nem tudom pontosan hogy mit jelentenek a többi jelzések. Az adatlapon sem találtam rá, van erre valahol valami táblázat? Előre is köszi.
Az első a hőtűrés tartománya (I- industrial, M-military, stb) utána a tokozás kivitele.
Adatlapjának a végén megtalálod.
Sziasztok
Pic 12F683-nál, mivel állítom be, hogy a bemenet digitális legyen? Pl gpio.0 Most ezek a beállítások vannak:
10k-s ellenállás nem tudja felhúzni 5V-ra, gondolom, még mindig nem digitális.
TRISIO regisztert nézd meg.
A hozzászólás módosítva: Márc 4, 2021
Az be van állítva bemenetre és működik is bemenetként, de egy 10k-s ellenállás nem képes felhúzni 5V-ra.
Ha direktre kötöm 5V-ra vagy (-) -ra akkor normálisan működik
Én nem vágom ezt a nyelvet, de ez így lefordul normálisan? Hol kis, hol nagybetű... Esetleg tedd fel a hex-et, megnézzük visszafordítva mit mutat.
Ha ez a kettő és a TRISIO be van állítva akkor mennie kellene. Nem lóg más alkatrész a lábon? Ez programozó láb is. Programozó sem volt rádugva mikor mérted?
A hozzászólás módosítva: Márc 4, 2021
Sziasztok!
Ennél a PIC leírásánál mit jelent a "cse160"? Idézet: „ 44 TQFP 10x10x1mm cse160 64KB, Flash, 3968bytes-RAM,8-bit Family ” Van ahol cse1200 van meg olyan is ahol cse10 de nem tudom mit jelent. A hozzászólás módosítva: Márc 4, 2021
Sziasztok!
A 8 bites bináris szorzást nem lehet valahogy megoldani valami bit forgatással vagy shifteléssel? Papíron meg tudom csinálni de elég sok lépésből, valami egyszerűbb megoldást keresek assemblyben. A 16 bites szorzás is érdekel de lehet hogy elég csak az algoritmus, az alapján talán össze tudom valahogy tákolni a progit. Előre is köszi a segítséget! Kettesével megy a szorzás amit csak shiftelni kell. de például páratlan számmal már nem nagyon. A hozzászólás módosítva: Márc 4, 2021
Itt találsz sok mindent: Bővebben: Link
Idézet: „A 8 bites bináris szorzást nem lehet valahogy megoldani valami bit forgatással vagy shifteléssel?” (PIC18) Assembly programozás haladóknak A fejezet tartalma: Szorzás - 4 bites előjel nélküli számok szorzása - 8 bites előjel nélküli számok szorzása - Hardveres szorzás (mulwf és mullw) - 16 bites előjel nélküli számok szorzása Előjeles szorzás - 8 bites előjeles számok szorzása - 16 bites előjeles számok szorzása Osztás - Előjel nélküli számok osztása - Előjeles számok osztása Makrók használata - Kiterjesztett pontosságú értékadás makróhívással (macro1.asm) - Logika léptetés makróhívással (macro2.asm) - Címkék használata makrókban (div32_32u.asm) - Számozott címkék használata makrókban (for-next.asm) A hozzászólás módosítva: Márc 5, 2021
Sziasztok!
Egy kis segítséget szeretnék kérni a Fail-Safe Clock Monitorral kapcsolatban. A PIC18F97J60 adatlapjának tanulmányozása közben akadtam rá, de nem értem teljesen pontosan a működését. Az világos, hogy a konfig-ban lehet bekapcsolni, és folyamatosan figyeli az elsődleges oszcillátort, hogy működik-e. Ha pedig engedélyezem a megfelelő bitekkel a hozzá tartozó megszakítást, akkor hiba esetén megszakítás generálódik, és ezzel kb egyidőben átkapcsol a belső oszcillátorra. Viszont az lenne a kérdésem, hogy amennyiben a külső oszcillátor helyreáll, akkor automatikusan "visszateszi" a PIC-et arra? Vagy ezt nekem kellene valahol beállítanom? Ha automatikusan visszaáll, akkor pedig ezt hol tudom nyomon követni? Van esetleg egy másik bit, amit figyelve megtudhatom, hogy már rendben a külső órajel/oszcillátor? Kb. ugyanez lenne a kérdésem a Two-Speed Start-up-pal kapcsolatban is... Azaz honnan tudom, hogy most már rendben van a primary oscillator, és arról ketyeg a processzor? Előre is köszönöm a választ!
Még egy gyors kérdés.
Lehet valahogy úgy shiftelni a regiszter értékeit hogy a leeső bitek hagyják ki a carryt de ne is jöjjenek vissza a másik oldalon? RRF, RRCF, RRNCF...STB nem jó. Olyan megoldást keresek hogyha shiftelek például jobbra, akkor a kihulló bitek tűnjenek el és balról csak nullák jöjjenek. Max. 8 shift után totál nulla legyen a regiszter. Hogy lehet ezt össze trükközni? Előre is köszi a segítséget!
Kontrollere válogatja. Egy tuti megoldás van, ami mindegyikre jó, az AND 0x7F.
Az adott kontroller utasításkészletét kell átfutni, ami mindegyik adatlapjában megtalálható
Arra nem gondoltál, hogy a forgatás előtt letörlöd a Carry bitet?
Balra léptetés mindig 0 -t léptetve be:
- addwf WREG , ha van lehetőség a WREG címzésére. - rlcf reg / bcf reg,0 - bcf STATUS, C / rlcf reg, f Jobbra - rrcf reg / bcf reg,7 - bcf STATUS, C / rrcf reg, f A hozzászólás módosítva: Márc 6, 2021
De igen, nemrég jutott eszembe . Köszönöm. De azt hittem van még valamilyen utasítás konkrétan erre.
Azért az utasításkészletet Neked kellene átnézni, ha már programozol. Abban tüzetesen le van írva melyik mit tesz..
Köszi, de sajna nem jött át mire gondolsz. Végig néztem az adatlapon az utasításkészletet de nemsok újat találtam. Az FSR-ben a címen a _CPD_ON_5H van. Ezt viszont még nem tudom mit jelent.
Hp41C: köszönöm de nem értem. Ez csak hozzáadja W értékét és ha léptetem akkor semmi nem fog változni. Ha jobbra shiftelek akkor gyakorlatilag 2-vel osztódik az érték. Pl. a kezdő érték 65. Jobbra shift = 32. A 0. biten 1 van, az kihullik de a carry bit 1. Eddig még nincs gond, de a következő shiftnél az érték 16 lenne, de nem mert visszajön balról az 1. Amit proli007 mondott szerintem megoldható de mindjárt leírom rendesen mit is akarok elérni. |
Bejelentkezés
Hirdetés |