Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Anno a Frauenhofer mintakódolója a 2x200MHz-es UltraSPARC-on tudott kb. real-time átlagsebességet (mivel egyszálú volt, ezért párhuzamosan két tracket kellett kódoltatni vele, hogy mindkét procit tudja használni, így egy 60 percnyi anyagot kb. 1 óra alatt csinált meg).
Nem vágom teljesen, hogy milyen DSP hardver van a 70MHz-es dsPIC-ben, de így látatlanban kevésnek érzem.
32 bit bináris -> decimális átalakító rutinja nincs esetleg valakinek? Igazából 27 bit és 8 digit is elég mert a maximum szám ami előfordulhat az 9998001.
Igazán elrakhatnád vagy használhatnád már a linket. 3 év alatt már sokszor kérted. Még egyszer....
A hozzászólás módosítva: Aug 26, 2013
Na most olyan kellene ami 4 bájtból négyzetgyököt von. Ilyet még biztos nem kértem.
(Ha szorzás kell bele akkor jó lenne 18F-es rutin a hardveres szorzás miatt.) Szerk.: Aham, van itt ilyen is Bővebben: Link Csak ebben mire való a ACCbHI:ACCbLO regiszterpáros? A hozzászólás módosítva: Aug 27, 2013
Itt olvasható erről egy vita, s ha jól értem, az a konklúziója, hogy minimum PIC32 kell hozzá, s az ezen az oldalon elérhető Shine MP3 encoder programmal van reális esély...
Nagyon hasznosak a linkek, köszönöm szépen!
A hozzászólás módosítva: Aug 27, 2013
A "movfp akármi, WREG" helyett jó lesz a "movf akármi, WREG", az "ALUSTA" helyett pedig a "STATUS"?
Azt tudom. De átírtam benne ezt a pár dolgot és úgy néz ki működik. Legalábbis ha a 41922562 gyöke 6474, akkor működik. Márpedig annyi.
Ez az utolsó, ígérem!
Most egy egyszerűbb dolog kellene, egy 5 bájtos számot szeretnék szorozni egy egy bájtossal. Az eredmény 5 bájtnál nem lesz nagyobb. Viszont ilyen rutint biztos nem találok a neten úgyhogy meg írnám magam. Viszont eddig még nem jöttem rá hogyan. Gondolkodom rajta de ha esetleg rájön valaki hamarabb akkor kérem ne tartsa magában! Na, mire ezt bepötyögtem már rá is jöttem: a*b= a0*b0+ a0*b1*256+ a0*b2*256*256+ a0*b3*256*256*256+ a0*b4*256*256*256*256 Értelem-szerűen a 0 a nulladik bit, 4 a negyedik bit. Már csak valami gusztusos assembly formába kellene mindezt önteni.
Pedig ennél egyszerűbb dolog kevés van.
A hosszú szám alsó byte-ját összeszorzod a másik szám byte-jával, az eredmény alsó byte-ja lesz a végeredmény legalsó byte-ja. Az eredmény felső byte-ját beteszed egy akkumuláló regiszterbe. Utána ciklusban veszed a hosszú szám következő byte-ját, megszorzod a másik szám byte-jával, az eredményhez hozzáadod az akkumuláló regiszter tartalmát, ami kijön eredmény, annak az alsó byte-ja megy a végeredmény következő byte-jába, a felső byte meg vissza az akkumuláló regiszterbe. Aztán a ciklust folytatod. A legvégén az akkumuláló regiszter adja majd a végeredmény legfelső byte-ját. A hozzászólás módosítva: Aug 27, 2013
Sziasztok !!!
írtam egy programot Pic 16f84 re megy is a program csak egy kis segítségre lenne szükségem . Hogyan tudom nyomógombbal működtetni az elindulást meg a bekapcsolási időt szeretném megadni ha valaki segítene meg köszönném a program így néz ki :
Légy olyan kedves és használd a "Kód" gombot! -moderátor- A hozzászólás módosítva: Aug 29, 2013
Szia!
Amikor kirakod a B portra az épp aktuális számot, utána kell egy időzítés, hogy lássad is, mert így 1-2uSEC alatt lefut a programod.Ahhoz hogy látható is legyen kell mindenképp egy aktív időzítőt is beletenni a programodba.A timer2 nevű számláló kiválóan alkalmas erre.pár utasítással elérhető, hogy legyen egy millisec, vagy 0,1sec időzítőd, és ekkor nagyságrenddel egyszerűbb lesz a progid.Hány megás kristályról működik a PIC?
Üdv Mindenkinek
Egy kis segítséget szeretnék kérni. asm-el szeretnék megszakítást programozni. A progit megírtam, de hiba miatt nem fordítja le. Az ORG 0x004 cím nem tetszik neki. csak ezt írja hibának más gond nincs, de nem értem mi a gond. Ezt írja: Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p16F887 "adc.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"adc.asm.cof" /M"adc.asm.map" /W MPLINK 4.43, Linker Device Database Version 1.9 Copyright (c) 1998-2011 Microchip Technology Inc. Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x00000a1e Errors : 1 Link step failed. ---------------------------------------------------------------------- Debug build of project `C:\Users\andras\Documents\ASM\repkond2\adc.asm.mcp' failed. Language tool versions: MPASMWIN.exe v5.46, mplink.exe v4.44, mplib.exe v4.44 Preprocessor symbol `__DEBUG' is defined. Thu Aug 29 21:12:58 2013 ---------------------------------------------------------------------- BUILD FAILED Előre is köszönöm.
Rakd fel a kódot. Akkor hátha könnyebben tudunk segíteni!
A fordítás hibátlan, a szerkesztőnek van baja. Hány "org" van a programban?
Kód nélkül nem tudunk segíteni. A hozzászólás módosítva: Aug 31, 2013
PIC-et és AVR-t eddig csak basic-ben programoztam, most meg ismerném a nagyobb PIC32 családot, így át kell térni a C nyelvre (MPLAB X), viszont lenne egy pár probléma, C nyelv alapjait már megértettem, a fordítóhoz adott plib.h által használható alkalmazásokat tanulgatom. Csakhogy ami eddig basic-ben ment azokat itt nem tudom eddig alkalmazni, pl a starter kit-re rá szeretnék tenni egy 2x16 LCD kijelzőt, csakhogy ahhoz kellene egy .h fájl ami működteti, meg még sok hasonló dolog van, a lényeg az lenne hogy a C nyelv és a nagy teljesítményű kontrollerrel több mindent tudjak mint eddig.
Próbálj a neten keresni lcd kezelő forráskódot, esetleg libraryt. Ha nincs, akkor írni kell egyet. De szerintem még itt a hobbielektronikán is van, mintha találkoztam volna vele. Persze ezek néha nem felhasználhatóak direktben, hanem ezt-azt módosítani kell rajtuk, hogy a feladat többi követelményébe beleilljenek.
A hozzászólás módosítva: Aug 31, 2013
Ha rám hallgatsz, előbb megtanulod a C nyelvet (nem mikrokontrolleren, hanem PC-n), aztán állsz neki ezt a mikrokontrolleres világban kamatoztatni.
Ott is a visual basic használom lehet váltani kell.
Nem váltani kell, csak a repertoárt kell bővíteni. Tukajdonképpen az MPLAB szimulátorában is sok mindent ki lehet próbálni, az is használható terep a C elsajátításához. Az MPLAB X-et nem ismerem.
Lucio Di Jasio könyve a klasszikus bevezetés a PIC32 programozásába (nem is tudok hirtlenjében mást). A C-hez pedig Kernighan és Ritchie ajánlható.
Sziasztok,
nagyon megköszönném, ha tudna nekem valaki segíteni a lenti prg.-ban (asm), hogy mégis miért nem akarja a PIC a soros portra küldeni a "16F788CR/LF" karaktersort? 16F788-at használok, 2Mhz-en járatom ezért SPBGR-be DEC12-t írtam, hogy elérjem a 9600baud -ot. BORTB a LEDEk vezérlése azért van hogy lássam, hol tart a progi, de mivel 0 és 1 aktív ez azt jeleni, hogy a prg lefut, viszont a soros porton nincs semmi! Ha valaki tudna segíteni, még egyszer is nagyon megköszöném!!! ; sorosport proba.asm ; RA0 és 1 emenetek kapcsolóval ; RB0 és 7 kimenet leddel ; RC7 RX bemenet ; RC6 TX kimenet ; órajel 2MHz ; PROCESSOR 16F877 #include "p16f877.inc" BCF STATUS,RP0 BCF STATUS,RP1 ;Bank0 CLRF PORTA CLRF PORTB CLRF PORTC BSF STATUS,RP0 BCF STATUS,RP1 ;Bank1 MOVLW 0x06 ;00000110 MOVWF ADCON1 ;A port dig ki be menet legyen MOVLW 0x03 ;00000011, W-be MOVWF TRISA ;A bement CLRF TRISB ;B kimenet ;sorosport beállítások MOVLW b'10000000' MOVWF TRISC ;C porton 7 bit bemenet (RX) a többi kimenet MOVLW 0x0C ;DEC12 MOVWF SPBRG ;Baudrate osztóhoz DEC12 MOVWF b'00100100' ;BRGH=1, TXEN=1 MOVWF TXSTA BCF STATUS,RP0 ;Bank0 BCF STATUS,RP1 MOVLW b'10010000' MOVWF RCSTA BSF PORTB,0 MOVLW '1' MOVWF TXREG MOVLW '6' MOVWF TXREG MOVLW 'F' MOVWF TXREG MOVLW '7' MOVWF TXREG MOVLW '8' MOVWF TXREG MOVLW '8' MOVWF TXREG MOVLW 0x0D ; CR MOVWF TXREG MOVLW 0x0A ; LF MOVWF TXREG BSF PORTB,1 END
A TXREG írása után várni kell, amíg a PIR1, TXIF jelzőbitje 1 lesz.
Kedves Hp41c,
köszönöm a gyors választ sajnos nem segített, az ajánlásodat illetve közben én is kutakodtam és TXSTA,TRMT bitjét is figyelem a következő képpen: MOVLW "1" CALL send MOVLW "6" CALL send MOVLW 'F' CALL send MOVLW '7' CALL send MOVLW '8' CALL send MOVLW '8' CALL send MOVLW 0x0D ; CR CALL send MOVLW 0x0A ; LF CALL send send MOVWF TXREG ism BSF STATUS,RP0 BTFSS TXSTA,TRMT GOTO ism BCF STATUS,RP0 ism2 BTFSS PIR1,TXIF GOTO ism2 RETURN A 2MHz-es órajel az nem lehet gond? Nkem már nincs több ötletem!
Ha szépen megkérlek, használnád a kód gombot?
Kedves vicsys,
bocsi de új vagyok a fórumon! Mi az a kód komb? Ha segítesz, természetesen használom. üdv
A hozzászólás ablakban találod. A kód kijelölése után megnyomod és 2 tag közé illeszti.
[code ] ez itt a kódod [ / code] Itt olvashatsz még: http://www.hobbielektronika.hu/help/ A hozzászólás módosítva: Aug 31, 2013
Pedig ezután csak két hibácska maradt benne:
1 - Watchdog kikapcsolása. Illetve a konfiugurációs regiszterek beállítása hiányzik. 2 - Az alábbi két sor nem azt csinálja, amit elgodoltál:
Helyesen:
Egy jótanács: Debugger / MpLab Sim kiválasztása. Újrafordítás, Debugger / Setting: Órajel beállítása, UART1 engedélyezése, kimenet ablakba beállítása. És már láthatod is az üzenetedet, ha futtatod (lépésenként hajtod végre) a programod.... A hozzászólás módosítva: Aug 31, 2013
Köszi, az észrevételt!
Valóban elírtam! A konfigurációs biteket én nem a prg.-ban, hanem MPLAB Configure/Confiurations Bit opcióban állítombe, amit elméletileg fordításkor hozzáad, legalábbis én így tudom. A debuggert eddig nem ismertem, most kezdek vele ismerkedni, köszi a TIPPET!!! Ja, módosítottam az elírásomat, de sajnos ez sem segített. Az ism ciklusban elakad és nem lép ki belöle ahol TRMT bitet vizsgálom, hogy 1-e? Debuggerel lehet vizsgálni egy-egy bit állapotát adott időpillanatban??
|
Bejelentkezés
Hirdetés |