Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   350 / 1319
(#) szigetivan válasza szigetivan hozzászólására (») Nov 30, 2008 /
 
Bocs ismét elírtam....na most a helyeset írtam be:

#include < p16f690.inc > ; processor specific variable definitions
(#) gulasoft válasza icserny hozzászólására (») Nov 30, 2008 /
 
Igen az output_bit-nek a 2. paramétere tényleg az hogy ki vagy be, és port helyett pin-t kapcsolnak. A többi infó viszont nagyon hasznos volt köszönöm. Most azután pláne nem tudom mi a fenéért nem megy. Erre nincs ötleted?
Vezeték nem lehet gond? Utp-ből kiszedett vezetékkel kötöttem be a 3 lábat, a vezeték hossza kb. 50cm. Kimértem nem szakadt.
(#) icserny válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
Első kérdés: eljutsz-e a fordítással a BUILD SUCCEEDED-ig, vagy valmi hibára fut?

Másodk kérdés: (ha sikeres a fordítás) milyen MPLAB verziód van? Lehet, hogy frissíteni kellene? Vagy valami félre van konfigurálva?

A harmadik mér nem kérdés, hanem kérés: a programot vagy {code=asm}-mal szúrd be (természetesen szögletes zárójellel...), vagy mellékletként csatold, mert így átszerkesztés nélkül nem tudja kipróbálni senki.

Válasz: nem, nem így gondoltam! Kell egy főprogram, ami beállítja az operandusok értékét, majd meghívja a M_ADD (vagy aminek hívják) eljárást, ésatöbbbi... Tehát a műveletvégző eljárásokba ne piszkálj bele.

A korábban adott linken tesztprogramot is lehet találni, azt kellene tanulmányozni és megérteni. Javaslom, hogy előbb csak az összeadást és a teszprogramot pipáld be, s az így letöltött programot tanulmányozd!

A több-bájtos összeadás algoritmusa az, hogy előbb összeadjuk a legalacsonyabb helyiértékű bájtokat, s eltároljuk, majd az eggyel magasabb helyiértékű bájtok összeadánál figyelembe vesszük, hogy az előzőekben volt-e átvitel (STATUS bájt C bitje), s ha igen, akkor eggyel növeljük az eredményt.

Az indirekt címzés megértéséhez a PIC16F690 adatlapjának
2.4 alfejezetét kell áttanulmányozni. Erre valójában nem lenne szükséged, de mivel a készen kapott eljárások általánosan vannak megírva (hogy tetszőleges méretű változókra is működjön) ezért indirekt címzéssel kezelik az adatokat. Ha van hozzá időd és türelmed, akkor érdemes megtanulni!
(#) icserny válasza gulasoft hozzászólására (») Dec 1, 2008 /
 
Idézet:
„A többi infó viszont nagyon hasznos volt köszönöm.”

Ne nekem köszönd, a CCS Help-jében van leírva, én is onnan merítem az "okosságot"!

Első körben a várakozások nyújtásával próbálkoznék, s a PICkit2-őt logikai analizátor üzemmódban ráakasztanám az adatvonalra, hogy lássam, mi zajlik rajta. Oszcilloszkóp még jobb lenne, de ha nincs kéznél, akkor ne...

A tápfesz szűrések rendben vannak? Az órajel frekvenciát mások is kérdezték már, az rendben van?
(#) gulasoft válasza icserny hozzászólására (») Dec 1, 2008 /
 
Ez az eleje.
Az LCD-t jól kezeli, azt átírtam mert nálam C porton van az lcd, ha az órajel nagyon rossz lenne, akkor az lcd sem menne.
Én is gondolkodtam a pickit2 analizátorrá alakításán, még este megcserélem a 2-es 3-as portot (a 3-as tuti jó mert azon van led), ha úgysem megy akkor az egészet összerakom próbapanelen, azután jöhet a pickit2 mint analizátor. Szerencse, hogy van egy icd2 is, azzal mehet a debug is közben.

#include <16f726.h>

#fuses NOWDT,HS, NOPUT, NOPROTECT,NOLVP,BROWNOUT //Oscillator mode HS
#use delay(clock=4000000) //Clock speed HZ = 4MHZ
#include "lcdc.c
(#) potyo válasza gulasoft hozzászólására (») Dec 1, 2008 /
 
Lassan tényleg ideje lenne megnézni azt az asm kódot, és kipróbálni a szimulátorban, hogy tényleg annyi-e az annyi...
(#) trudnai válasza gulasoft hozzászólására (») Dec 1, 2008 /
 
Az nem zavarhat be, hogy a CCS-ben alapban ezek az output akarmi fugvenyek allitjak a TRIS-t is egyben? Meg kell neki adni valami fast IO pragmat vagy define-t, hogy ezt elkeruljuk - most nem emlekszem pontosan, de ez is benne van a doksiban.
(#) gulasoft válasza trudnai hozzászólására (») Dec 1, 2008 /
 
Pont az a lényeg, hogy állítsák a TRIS-t mert pl. itt kell is:

output_float(PIN_B2); // float 1-wire high
delay_us( 5 ); // allow pin to stabilize
if (!input(ONE_WIRE_PIN)) {

bár a help szerint az input úgyis állítja, és ennél a résznél már nem megy tovább. Olyan sok időzítés itt még nincs is, ezzel Potyonak is megadtam a választ, és már itt nem jut tovább. Ha lesz időm délután akkor csak ezt a részt megírom asm-ben, és utána kiderül. Az is lehet, hogy B2-es láb halott. Az biztos, hogy érintkezik, mert az ic tetejétől (ahol kijön láb) a ds1820 középső lábáig ki lett mérve, 0 ohm, a ds1820 középső lábától az 5V-ig meg 4.7k ohm, a gnd és az egyes láb között valamint a 3-as láb és az 5V között szintén 0 ohm. Sajnos a szimulátor nem mondja meg tényleg csinál e valamit a B2, erre jó lesz a pickit2 analizátor módban, csak annak még utána kell nézni.
(#) szigetivan válasza icserny hozzászólására (») Dec 1, 2008 /
 
"Első kérdés: eljutsz-e a fordítással a BUILD SUCCEEDED-ig, vagy valmi hibára fut?"
eljutok lefordul hiba nélkül.

"Másodk kérdés: (ha sikeres a fordítás) milyen MPLAB verziód van? Lehet, hogy frissíteni kellene? Vagy valami félre van konfigurálva?"
Mplab 8.00

"A harmadik mér nem kérdés, hanem kérés: a programot vagy {code=asm}-mal szúrd be (természetesen szögletes zárójellel...), vagy mellékletként csatold, mert így átszerkesztés nélkül nem tudja kipróbálni senki."
Rendben ez már nekem is feltűnt,h.nem jól szúrom be

Amugy ahogy írtad csak egy operandussal próbálkozom, de nem tudom figyelni a regiszterek tartalmát, mert sajnos még mindig inaktív az add symbols gomb:S

"A több-bájtos összeadás algoritmusa az, hogy előbb összeadjuk a legalacsonyabb helyiértékű bájtokat, s eltároljuk, majd az eggyel magasabb helyiértékű bájtok összeadánál figyelembe vesszük, hogy az előzőekben volt-e átvitel (STATUS bájt C bitje), s ha igen, akkor eggyel növeljük az eredményt."
okés ez érthető is, de akkor miért nem látom a tesztelésnél felsőket, miért csak az alsókat lehet beállítani??
(#) icserny válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
Idézet:
„Mplab 8.00”

Ezt jó lenne frissíteni, hogy lehetőleg mindketten ugyanazt lássuk...
Idézet:

de akkor miért nem látom a tesztelésnél felsőket”

Ezt a kérdést nem igazán értem, de nem is tartom idevágónak, amíg az MPLAB-bal szürke gombos mizériája meg nem szűnik.
Utána úgy megy a dolog, ahogy tegnap megírtam.

(#) szigetivan válasza icserny hozzászólására (») Dec 1, 2008 /
 
azt vettem még észre,h.akkor lesz aktív nekem az add symbols ha nem projekt varázslóval teszem, hanem csak új projektként állítom be. ez lenne a baj?
(#) szigetivan válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
felsőkre meg a felső 8 bitet értettem az M_TEST-nél,h.nem látom,h.hol tudom megadni ebben a progiban a felső 8 bitet.



math.asm
    
(#) szigetivan válasza icserny hozzászólására (») Dec 1, 2008 /
 
8.10-re frissítem, remélem ez jó lesz
(#) trudnai válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
Tagold eloszor is fel a rutinjaidat, utana kommentezd fel mit miert kivansz csinalni - a komment epp arra valo, hogy oda irdd mi a szandekod, es a szandekot egyszerubb osszehasonlitani az aktualis koddal, hogy ahhoz kepest mi tortenik, igy kiderulhet hol a hiba.

Velemenyem szerint joval egyszerubb lenne az egeszet lemakrozni es nem vacakolni az FSR-rel, vegulis nem tutasidoben fog eldolni, hogy milyen precizitassal dolgozol. Azonban ha megis FSR-t valasztasz es ilyen modon oldod meg a pointerek szamolgatasat, akkor celszerubb lenne big-endianos abrazolasra atterni es ugy valamivel csokkenne a pinter szamolgatas.

Ja, es amugy az FSR-nel nem allitod be az IRP bitet, es nem torodsz az esetleges tulcsordulasokkal - bar mivel abszolut modban programozol lehet sohasem fogsz talalkozni az ezekbol eredo gondokkal.
(#) mrfencer hozzászólása Dec 1, 2008 /
 
Üdv!

Végezvén a projectemmel, még van két hetem itt Franciahonban, gondoltam elütöm az időt egy kis PIC továbbtanulással. Van nekem egy PIC18F4520-I/P -s procim. Eddig a 16F877-el dolgoztam. Nézetem a 18 as adatlapját, ugy látom a lábkiosztás ugyan az. Mégis miben különbözik a 16-ostól és mit kell másképp programozni mint a 16ban? Van egy PICDEM2plus-os panelem, azon van egy LCD- azt szeretném első körben életre lehelni. Ez pontosan milyen LCD?
További szép napot mindenkinek!
(#) trudnai válasza mrfencer hozzászólására (») Dec 1, 2008 /
 
Elso korben tanulmanyozd a 18F utasitaskeszletet! Sok elteres van!
(#) pako válasza trudnai hozzászólására (») Dec 1, 2008 /
 
Azért nem kristályt használok, mer a PIC 3.3V-on megy, és az adatlap szerint ezen a feszkón max 25-30MHz-et visel el. Amúgy észrevettem egy érdekes dolgot. Rákötöttem egy 8, 12, 13.xx MHz-es kvarcot, bekapcsoltam a PLL-jét, és a 12-13.xxMHz-en látszólag ugyan azzal a sebességgel ment, mint a 40-es oscillátorral. Adatlap szerint pedig a PLL sak 4-10MHz-ig használható. Elképzelhető, hogy a 12MHz-nél még stabilan működik a PLL? Tehát 48 MHz lesz belőle, vagy valami pontatlan, használhatatlan akármi?

Jah és feltűnt még valami, ezt csak érdekességként írom: ráraktam egy 60MHz-es oscit, PLL nélkül nem csinált semmit, azt bekapcsolva viszont kb 2-szer olyan gyors volt, mint a 40MHz-es osci PLL nélkül. Csak néha hibásan olvasta ki a RAMját
(#) gulasoft válasza mrfencer hozzászólására (») Dec 1, 2008 /
 
Nem kell bankot váltani a 18-asoktól felfelé. Ez pl. nagy könnyebbség. Biztos van még sok más hasznos dolog.
(#) potyo válasza pako hozzászólására (») Dec 1, 2008 /
 
A 3.3V-on megadott frekvencia nem azt jelenti, hogy olyan kvarcot tud meghajtani, hanem hogy a komplett processzora ezen az órajelen képes megbízhatóan futni. Tehát teljesen mindegy, hogy te külső forrásból biztosítod a frekvenciát, vagy a ráakasztott kvarcból kapja.

A PLL az egy érdekes dolog, én is végeztem ilyen kisérleteket, de 16MHz-es kvarccal már nem 64MHz volt az órajel, hanem kevesebb, úgy emlékszem 50MHz körüli. 20MHz-es kvarccal szintén kb. ugyanennyit sikerült kicsikarni belőle. Sajnos 12MHz-es kvarcom nem volt, hogy kipróbáltam volna azzal is. Elképzelhető, hogy stabilan működik, de erre nem építhetsz. Lehet, hogy a chipek 95 százalékánál megy, de ott van az a maradék 5%, aminél nem megy.
(#) pako válasza potyo hozzászólására (») Dec 1, 2008 /
 
Akkor majd kipróbálom a 12MHz-et PLL-el, UART is van a kütyüben, szóval kiderül majd egyből, hogy működik-é-e. Majd megírom, mennyire stabil.
(#) icserny válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
Idézet:
„nem látom,h.hol tudom megadni ebben a progiban a felső 8 bitet.”


  1. movlw   0x8A
  2.     movwf   REG_X               ; set register X (lowest byte)
  3.  
  4. ; Ezt folytatod pl.:
  5.  
  6.     movlw 0x10
  7.     movwf REG_X+1


De ezt már tegnap is megírtam!!!
(#) icserny válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
Idézet:
„8.10-re frissítem, remélem ez jó lesz”

Nem tudom, hogy miért nem lehetett a legújabb kiadásra frissíteni.

Idézet:
„azt vettem még észre,h.akkor lesz aktív nekem az add symbols ha nem projekt varázslóval teszem,”

Nekem 8.14-gyel és 8.15a-val nem voltak ilyen gondjaim.
Listázd már ki, légyszi, hogy milyen fájlok vannak a projekt könyvtárban egy sikeres build után! Még jobb, volna ha összezippelve csatolnád a projekt könyvtáradat!
(#) mulder2005 hozzászólása Dec 1, 2008 /
 
Hello

Kérdésem lenne, hogy hogyan lehet microC-ben a 16F628as mikroprocesszort sleep üzemmódba elküldeni ?
(#) potyo válasza mulder2005 hozzászólására (») Dec 1, 2008 /
 
asm{sleep}
(#) mulder2005 hozzászólása Dec 1, 2008 /
 
és microC-ben?
(#) szigetivan válasza icserny hozzászólására (») Dec 1, 2008 /
 
szia.
ok igazad van már leírtad és már beleraktam és működik is az összeadás meg a kivonás, de a szorzás osztás nem adja vissza azokat az értékeket mit szeretnék.
értékek figyelését máshogyan megoldottam és látom is,h.mit rak bele..
progit majd csatolom.
és frissítem akkor a legújabb verzióra az Mplabom.
(#) icserny válasza szigetivan hozzászólására (») Dec 1, 2008 /
 
A mellékelt tesztet végigléptettem a szimulátorban (step over gomb), s nekem úgy tűnik, hogy minden alapművelet működik.

Az eredeti teszt: (0x8A+0xFC)/0x5 = 4E
Magyarra fordítva (138+252)/5 = 78

Megtoldottam a tesztet azzal, hogy visszaszorzok öttel, és kivonok 252-t (0xFC-t), s akkor visszakapom a kiindulási adatot (0xA).

Arra ügyelj, hogy szorzáskor ne csorduljon ki a 16 bitből (tehát a szorzás eredménye ne legyen nagyobb 655535-nél)!

Arra is ügyelj, hogy nem mindig Z-be kerül a művelet eredménye, hanem Y-ba.

szorzas.asm
    
(#) icserny válasza mulder2005 hozzászólására (») Dec 1, 2008 /
 
asm { sleep }

vagy

asm sleep;

amelyik jobban tetszik...

Lásd itt (Asm Declaration) a 17. oldalon.
(#) Hujikolp hozzászólása Dec 1, 2008 /
 
Üdv, valaki tudna nekem ebben segíteni, hogy az ADCON1 és 0 mit csinál?
START
BANKSEL TRISC
CLRF TRISC
MOVLW B'00001110'
MOVWF ADCON1
BANKSEL PORTC
MOVLW B'01000001'
MOVWF ADCON0

A többivel tisztában vagyok, csak ezt nem tudom, ha esetleg kell még valami, akkor begépelem
(#) potyo válasza Hujikolp hozzászólására (») Dec 1, 2008 /
 
Az adatlapban keress rá az ADCON0 és ADCON1 szavakra, és meg fogsz lepődni, mert le van írva, hogy mit csinálnak!
Következő: »»   350 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.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