Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Huh nem akármilyen hülén nézek ki a fejemből... :eek2:
Egyszerubb lenne valaszolni, hogy milyen nyelven NEM ...
A legrövidebben....Pl...
De remélem nem sértettelek meg mert nem az volt a szándék, csak pár ora "röhögés " után nem jutott eszembe más...
Sok nyelven lehet programozni de ha tényleg tökös és profi akarsz lenni, akkor ASM-ben programozod ifjú Padavan....
Álljon itt egy idézet számodra: "A profik ASM-ben programoznak. Akik pedig pénzt keresnek azok C-ben..." Szerintem ez mindent megmagyaráz számodra. ASM vagy C. A többi felejtős... Én az ASM-et preferálom még PIC24 esetében is, a microchip személyes rádumálása ellenére...
"A profik ASM-ben programoznak. Akik pedig pénzt keresnek azok C-ben..."
Diszjunkt halmazokról van szó?
Sziasztok! Tud nekem valaki segíteni abban hogy mivel lehetne lefordítani egy C nyelven írt programot ASM-re. Itt a program. PL segítsetek fontos lenne. Előre is köszönöm.
Idézet: „Diszjunkt halmazokról van szó?” Nem hinnem, eleg sok olyan mernok van aki meg mindig asm-ben nyomja. Pl Olin Lathrop aki az egyik legjobb ezen a teruleten (marmint akit ismerek). Ha megnezitek neki sajat preprocesszora van assembly fejleszteshez optimalizalva, assemblyben megirt USB framework, repulogep szimulator (ugy ertem igazi amibe bele ulsz) stb stb stb. Idézet: „#include "H:\Picc\Projects......” Ebbol itelve PICC compilerrel lenne a legegyszerubb. Nyilvan majd az eleresi utvonalat a sajat fejlesztoi kornyezetedhez kellene igazitani, ha mar igy bele drotoztak.
Bocsi de nem tudom átkonvertálni ASM-be azt a c nyelven íródott progit megtenné nekem valaki mert leszedtem 8 fajta progit és nem megy biztos én vagyok a balf...(ék). Hálás köszönetem. Ja és itt a *.h file is.
Biztos assemblyben kell, nem a hex-ben?
Csak azt tudnám, hogy van ennyi idejük! Mennyi meló lehetett azt a fedélzetet megépíteni. Persze a fejlesztés se rövid idő. Az a gyanúm, hogy jobb anyagi helyzteben vannak, nem okoz gondot megvenni, vagy legyártatni a megfelelő alkatrészeket. Na mindegy, csak irígykedem...
Nem lehet szerintem, vagy ha igen, azzal sem mész sokra, mert nem lesz komment és nem lesznek változó nevek, csak számok.
Lenne egy kis gond. PIC24. 12 biten használom az AD konverterét. Ez ugye 4096 változat.... 1.024V referenciát adok neki, hogy egy bit = 0,25mV, és így egyszerűbb számolni a PIC-nek. Állítható a referencia fesz egyébként.
Beállítom configban, hogy a referencia felső pontja az a Vref+, az alsó meg az Avss. Erre konverziónál kiakad. Eredmény 0FFF ami ugye 4096. Kicsit feltekerem neki a referencia feszkót menet közben, 1,6V-tól már ad "normális" eredményt. Mindez úgy, hogy közben az érzékelő ellenálláson a mérendő feszültség a multiméter szerint 0,342V és ez helyes is, stabil is. Ha pl a referencia a PIC belső 3,3V tápja akkor az eredmény helyes, és visszaszámolva az AD konverter eredményét ki is jön a 0,342V... Na erre mondjatok valamit... Keresem mindenhol, de sehol nem találom a doksikban hogy mennyi lehet a referencia feszültség minimuma... Más PIC-ekkel mi a tapasztalat, külső Vref esetén?
Azért nem olyan rosz a helyzet, a CCS ilyesmi assemblert gyárt (*.lst néven) Szépen lehet követni, hogy mire fordította a C forráskódot. Szerintem lehet belőle tanulni is, ha valaki legalább a C-vel tisztában van valamennyire.
.................... lcd_send_nibble(0x02); 01A9: MOVLW 02 01AA: MOVWF 62 01AB: CALL 136 .................... .................... for(i=0; i < sizeof(LCD_INIT_STRING); i++) 01AC: CLRF 4D 01AD: MOVF 4D,W 01AE: SUBLW 04 01AF: BTFSS 03.0 01B0: GOTO 1BE .................... { .................... delay_us(2); 01B1: MOVLW 03 01B2: MOVWF 20 01B3: DECFSZ 20,F 01B4: GOTO 1B3 .................... lcd_send_byte(0, LCD_INIT_STRING[i]); 01B5: MOVF 4D,W 01B6: CALL 087 01B7: MOVWF 4E 01B8: CLRF 5F 01B9: MOVF 4E,W 01BA: MOVWF 60 01BB: CALL 167 .................... } 01BC: INCF 4D,F 01BD: GOTO 1AD .................... .................... delay_ms(10); 01BE: MOVLW 0A 01BF: MOVWF 5B 01C0: CALL 122 .................... }>
Mintha valaki nemrég említette volna, hogy ugyanígy járt valamelyik 8 bites chippel. Szóval keresd meg, az adatlapban, hogy mennyi a minimum, és ha szükséges, akkor egy műveleti erősítővel kétszerezd meg a jelet és használj 2,048V referenciát.
Szerintem pontossabban fogalmazd meg mit akarsz, miért kell neked assembler. Mert így nem igazán tudnak neked hatékonyan segíteni.
Ezt nevezik listing fájlnak, és pont az a célja, hogy meg lehessen nézni, mit mire fordít a fordító, és ha szükséges, akkor úgy változtatni a kódon, hogy a generált asm lista jobb legyen. De ez a fájl további felhasználásra alkalmatlan, legalábbis kézzel kellene kiszedni belőle a felesleges dolgokat.
De mintha valamelyik fordítónál láttam volna opciót, hogy készítsen rendes asm fájlt. Talán a C18 volt az, de most nincs kéznél, hogy megnézzem.
Más PIC-eknél 2V-ra vagy 2.5V-ra emlékszem, de ennyire alacsony (1.024V) biztos nem volt. Meg kellene keresni azt az adatot valahol, mert szerintem biztosan ez a baja.
Kösz a pontosítást, de én is csak inkább optimalizálási, tanulási célból nézem meg.
Üdv: P István
A n darab bemenetet nem akarom bonyolítani. Most emelem a referenciát 2.048-ra. Ez sem rossz csak az a bajom vele hogy pont nem tudja mérni a multi ezred pontosan....
A doksit átnéztem de DC adatokról eléggé szófukar...
Na közben meglett. Mér frankón. 2.048V-a referencia végülis mert így egy digit = 0,5mV. Az eredményt pl. h27D-t ennyivel szorozva megkapom hogy h16B, ami ugye d363 (mV) tehát a PIC jól mér. De mivel 0,5-el nem szorozhatok a PIC24-ben, ezért inkább osztom 2-vel. Hardveres osztás viszont van benne, úgyhogy nem kell rá külön rutint írnom mint anno PIC16 esetében.
PIC24HJXXXGPX06/X08/X10 adatlap, TABLE 23-35: ADC MODULE SPECIFICATIONS:
Absolute Reference Voltage: VREF = VREFH - VREFL =2,7V min. ... 3,6V max. Reference Voltage High: AVSS + 2.7 min. ... 3,6V max.
Igen, valami ilyet az MPLAB is tud, de ha valakinek ilyen kódot kéne értelmeznie, hát nem irigyelném.
Mint említettem, nincsenek változónevek, csak számok. (jó felette ott van a C kód, ez némileg könnyíti a helyzetet.)
Hát a te megoldásod nem igazán értettem, viszont találtam a neten egy szoftveres PWM megoldást Bővebben: Link, csak ez elég nagy impulzus szélességet hoz létre, amit még egy rá kapcsolt leddel is látni. (erősen vibrál). Viszont ez a Kónya-fél könyv érdekel, be tundád linkelni, vagy a pontos címét megadni? Kösz!
Az adatlap nem azt irja, hogy 2,7V alatt garantaltan nem mukodik, hanem hogy a felett garantaltan igen...
Egyébként viccesek ezek a határértékek... El lehet képzelni mennyi lehetőséget ad hogy 2.7-3.6 között a referencia. Semmilyen digitálisan "értelmes" értéket nem választhatok hogy egyszerűsítsem a dolgomat....
|
Bejelentkezés
Hirdetés |