Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A gyártó oldalán találsz mass-storage firmwaret. Persze nem tudom, hogy ez minden további néllkül kompatibilis-e minden számítógép harverrrel...
Szerintem nézegesd a Microchip Application Framework USB Device - Mass Storage - Internal Flash nevű demóját. Ha jól értem a doksiját ennek segytségével a PIC pendrive-ként látszik és FAT fájlrendszert s emulál.
Én úgy képzelném el az olvasást, hogy lenne egy fájl a meghajtón logikailag, persze. Amikor azt a fájlt olvasod valamilyen programmal, akkor a PIC küldené adott formátumban az adatokat. Tehát végül a fájlban lesznek az adatok. Hú, ez nagyon zavaros lett. Azért remélem más is érti rajtam kívül. Bocs.
Sziasztok!
Írtam egy programot és még nem sikerült kipróbálnom. És az lenne a kérdésem hogy megnézné-e valaki hogy nincs e benne valami hiba. Ez egy LED váltogató program lenne kezdetben List p=16f877 #include "p16f877.inc" ;Konfigurálás __CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _LVP_ON ;Kezdő pozíció ORG 0 GOTO START ;Program START ;PORTB beállítása digitális kimenetre BSF STATUS,RP0 ;BANK 1-re váltás MOVLW 0x06 MOVWF ADCON1 CLRF TRISB MOVLW b'00000000' MOVWF TRISB BCF STATUS,RP0 ;BANK O-ra váltás MAIN MOVLW b'00100000' MOVWF PORTB ;RB5 NOP NOP NOP NOP NOP NOP NOP MOVLW b'00110000' MOVWF PORTB ;RB5,RB4 NOP NOP NOP MOVLW b'00000100' MOVWF PORTB ;RB2 NOP NOP NOP NOP NOP NOP NOP MOVLW b'00010000' MOVWF PORTB ;RB4 NOP NOP GOTO MAIN END smrtln
Szia!
Valószínűleg olyan gyorsan fog villogni, hogy nem látod, de ez az órajeltől függ ( azt meg nem írtad, de a HS az nagy sebességre utal!) ! Az LVP-t biztos, hogy ON-ba szeretnéd? Steve
Szia!
10 MHz kristályt akarok rákötni, LVP-t azt beakarom kapcsolni vagy te mit tanácsolsz inkább on vagy off legyen és még lenne egy kérdésem, hogy a NOP helyett milyen késleltetés parancs van, nem tudsz valamit? smrtln
Mivel akarod programozni ?
Késleltetés parancs nincs, hanem ciklust kell szervezni ( DECFSZ utasítás környékén nézegess!) ! Steve
Szamoldd ki, hogy ha 10MHz a kristalyod, akkor 1 utasitas 400ns alatt hajtodik vegre (mar az 1 ciklusosak persze, a 2 ciklusos nyilvan ennek 2x-ese). Tehat 5 db NOP-al mar 2us-ot ersz el... Szamoldd ki, hogy hany db NOP kellene 1s eleresehez!
Ahogy irtak hosszu idozitesekhez ciklusokat kell csinalni, vagy masik lehetoseg, hogy a timert hasznalod es annak tulcsordulasat figyeled, de egyenlore ezt lehet meg hanyagolni kellene. Amugy vannak meg olyan trukkok, hogy:
ugye GOTO/CALL/RETURN 2 ciklusosak, mindegyik 800ns kesleltetest eredmenyez. Azaz meghivod a wait1600ns-t CALL-al, az mar eleve 800ns, majd a RETURN miatt lesz 1600... A tobbi kalkulaciot rad bizom. Na, es ezeket es ehhez hasonlo idoziteseket tudsz pl. hasznalni cikluson belul. Erdemes olyan varakozo rutinokat letre hozni amelyek egy elore ismert idonyit varnak, pl. 1ms -nyit. Es ezt lehet akkor egy ciklusbol hivni, ami pl 250x hivogatja ezt, azaz 250ms idozitest eredmenyez. Ezt pedig egy szinten masikbol meghivod 4x, igy lesz 1s-od... Stack-re figyelj, mert korlaozott a merete!
A PIC18F4520 adatlapjában van egy táblázat az A/D konverternél ami arról szól hogy az A/D bemeneteket hogyan lehet használni. Nem lehet azt hogy mondjuk csak az AN8-at és az AN3-at használom, hanem csak vagy AN1, vagy AN1 és AN2, vagy AN1 AN2 és AN3 stb.
A PIC18F14K50 adatlapján viszont nem találok erre utaló táblázatot. Ennél a PIC-nél akármelyik A/D lábat használhatom?
Sziasztok!
Köszönöm szépen a segítségeteket, akkor kipróbálom ezt a trükköt és ha nem sikerül akkor kiszámolom hány NOP-ra lesz szükségem. Ja amúgy assemblyben programozok smrtln
Mesterek!
Segítséget kérnék, nagy tisztelettel. Egy panelműszert készítek (Vés A mérés) és az gondom, hogy billeg (konkrétan ugrál) a voltmérésnél a tized és század. Nagyvonalakban: TL431-es referencia (hidegítés és mindenféle trükközés nélkül). A feszméréshez egy 1:20-as ellenállás osztó majd egy LM358 egyik fele, feszültség követőként bekötve és innen a PIC AD-re. Ha testre teszem az osztót (ugye az 0V) akkor is ugrabugrál. Maga az AD konzerzió jó lenne, csak akkor kezd ugrálni amikor felszorzom a mért értéket a ref és osztó értékével. Ha nincs beszorozva, csak a szimpla AD értéket nézem, akkor okés. Mértem a feszt multiméterrel a bemeneten is és TL-en is, de az stabil. Próbáltam már azt is, hogy átlagolok (10x mérek majd 10-zel osztok), de akkor is ugrál. Breadboardon csillagpontosan dugtam össze a ref-val. Mit lehet még kipróbálni? Mire nem figyeltem? Csatolom a mérést, testelt osztóval.
Mutasd meg a kódodat meg erről a mérésről is kicsit több infó kellene, hogy hogyan történt.
Sziasztok!
Bocsi az elemi kérdésért, de már kinéztem a szememet és nem találom. Hogy lehet a 16F628-nál a PWM-t 10 bitesre állítani? Az világos hogy ebben az esetben a 2 LSB bit a CCP1CON 4. és 5. bitje, de hol kell beállítani? Jól gondolom, hogyha átállít(anám) 10 bitre, azzal a 0-100%-ig történő változá ideje is négyszeresére nő? Próbaképpen egy LED-t akarok szabályozni, a belső 4 Mhz-s oszcival, előosztó 16-on, PR2 FF, és így 0-ról a 100%-t kb 1 sec alatt érem el. Az lenne a cél, hogy ez kb 4sec legyen. Természetesen a belső óra frekije nem változhat
Emeld lassabban a kitöltési tényezőt. Nem muszáj minden megszakításban egyel magasabb értéket beállítani, maradhat háromszor ugyanaz, és csak negyedszer növeled.
Amúgy a PWM mindig 10 bites módban van tudtommal, csak esetleg az alsó biteket fix értéken tartjuk és úgy lehet elérni látszólag kevesebb bitet.
Hát, jobban örültem volna nem CCS kódnak...
Én ezt:
Így csinálnám:
Nemtudom, hogy ettől ugrál-e, de egy próbát megér.
Átvariztam 1 kicsit.
Ekkor 1 kicsit stabilabb lett, viszont az AD csak 8 bites. Csatolom a tápra dugott feszmérést. Még mindíg elégedetlen vagyok. Kipróbálom amit írtál, csak nem értem miért változna bármi is. Magyarázat egy vak és süket embernek?
Mekkora ötlet!!! Köszi! Én meg milyen egységsugarú, hogy ez nekem nem jutott ez eszembe.
Sziasztok!
Van itt egy pár ultrahangos távolság mérő. Ezek többnyire I2C-vel rendelkeznek. Sajnos ezzel a kommunikációs busszal még nincs tapasztalatom. Az volna a kérdésem hogy mennyire bonyolult egy kezdőnek ilyen bus-t konfigurálni, valamint vannak még olyan érzékelők aminél ez van ki írva: Returns a positive TTL level signal, width proportional to range Ez mit jelent? Hogy fogom a kimenetén megkapni az értéket? Válaszotokat előre is köszönöm!
Ez az eredmény már egész kultúráltnak tűnik, a múltkoriban voltak nagyon durva ugrások. A kód így már szerintem jó, most kellene megnézni a kapcsolást.
Szerintem varnod kellene a set_adc_channel() es a read_adc() kozt -- oda kellene az a 180us varakozas inkabb... Amugy meg felesleges a cikluson belulre tenni a setupot, azt eleg egyszer felkonfigni hacsak nem akarsz minden alkalommal mas-mas csatornat beolvasni...
Szia
Köszi, kipróbálom. (Nézted a második variációt?) Csatolom a rajzot. A hidegítés csak a PICnél van, mert rontott a helyzeten ha rákerült.
Szia!
Ahhoz, hogy a PWM 10 bites legyen, a timer2 előosztójának 4-et vagy 16 -ot kell osztania. Szia
Nem kell. Ha 1:1 arányra állítod a timert, akkor a hardverben van egy osztó, amit ekkor használ. Figure 9-3 alatti Note 1-et nézd meg.
Hali programozók. lenne egy PIC12F675 , és egy TSOP1736-os infra vevő. A meló az lenne, hogy írni rá egy programot. Nem tudom mik a PIC kimenet lábai:, de amit kellene csinálnia az ez: Egy gombot megnyomok a PIC áramkörében, és akor fogadja a jelet. Ezt eltárolja. Megnyomom emgint, fogja a jelet, és eltárolja. Megnyomom megint, fogja ajelet és eltárolja. Aztán ha megnyomom a távirányítón azt a gombot, amit első programozásnál nyomtam, akkor pl, az egyik kimenet láb, és a GND összekapcsoljon, tehát egy kapcsolóként funkcionáljon. Egy infravevő cucc lenne, ami a távolból vezérelne, 3 más nyákba ültetett gombot.
Nagyszerű, mi a kérdésed?
(Gondolom nem itt keresel valakit, aki nekiáll neked programozni, mert ha így gondoltad, akkor az apróhírdetésben a helye a problémádnak.)
Sziasztok, én azt szeretném kérdezni, hogy Pickit2 vel lehet programozni 16F690-et a hagyományos módon?
Mert a manual device select be nem találtam ezt a chip-et.
Biztos, hogy lehet programozni, de nem biztos, hogy a kézi kiválasztásban megtalálod. Másik családban keresd! Fel kell ismerje a család kiválasztásakor a PIC-et. (Szerintem ez kicsit bénán sikerült nekik, én is jobban szeretem, ha a PIC nevét látom a kiválasztáskor!)
Oké, köszönöm, csak azért kérdeztem, mert jön át délután egy barátom, és megkért , hogy programozzam fel neki a 690-esét, és nem akartam beégni, hogy itt bénázok, közbe meg nem is lehet. Na de akkor ha minden rendbe, akkor fel kell hogy ismerje. Mondjuk jobban megnézve, a 628-as sincs benne a kézibe mégis felismeri.
Köszi a választ. |
Bejelentkezés
Hirdetés |