Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   445 / 1319
(#) icserny válasza WTC_sysOP hozzászólására (») Márc 28, 2009 /
 
Idézet:
„Mennyi lenne az a "gyalázatosan alacsony" ?”

PIC25FJ128GA010 (ez az Explorer16 kártya egyik MCU-ja)
Endurance = Min. 100, Typ 1000

A tipikus 3,3 V, 25 C fokon érvényes.
A minimum a teljes hőmérséklettartományra vonatkozik.
(#) icserny válasza szigetivan hozzászólására (») Márc 28, 2009 /
 
Ha még mindig a PIC16F690-ről van szó, akkor a rossz hír az, hogy a Microchip nem gyártott hozzá más fordítót, csak az assemblert.

A jó hír pedig az, hogy a telepítő könyvtárban eddig is mellékelték a HiTech C fordító ingyenes vátozatát, a közelmúltban pedig a Microchip megvette a céget, tehát feltehetően foglalkozni fog vele, hogy még jobban integrálják bele.

Vannak más, ún. Third Party ingyenes fordítók is - ilyen-olyan korlátozásokkal: CC5X, BoostC, MikroC, stb.
(#) szigetivan válasza icserny hozzászólására (») Márc 29, 2009 /
 
Köszi.

Meg is nézem a HiTech ami érdekel
(#) Lozsa hozzászólása Márc 29, 2009 /
 
Üdv!

PIC konfigurálásnál mondjuk egy lábon van adatlap szerint: "RA5/AN4/SS/HLVDIN", és ebből én RA5-öt szeretném digitális lábként használni bemenetnek, akkor ezt hogyan kell inicializálni, azon kívűl, hogy "bsf TRISA5"?
(#) watt válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Megézed az adatlapon, hogy milyen belső perifériák tartoznak a lábhoz, és a hozzá tartozó regisztereket úgy állítod be, hogy ki legyenek kapcsolva. Mást nem kell tenni, ha a TRIS rendben.
(#) trudnai válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Az adatlapon az I/O ports szekcional meg az is ott szokott lenni hogyan kell a portot digitalisra kapcsolni - persze nem mindig tokeletes ami ott van mert az csak egy fajta inicializalasi mod, de tipikusan a PORTA-nal bevalik. Ha esetleg nem assemblyben programozol akkor is azert ki tudod venni meilyik SFR-re mit tolt.
(#) Lozsa válasza trudnai hozzászólására (») Márc 29, 2009 /
 
Köszönöm, rendben van.

Más: ha nem akarom mindíg a portlábat írni, hanem elnevezném valaminek az hogy lehetséges?

Tehát pl: led felkapcsolás "bsf PORTB, 3" helyett lehet azt, hogy "bsf led"?

Odáig megy, hogy mondjuk "led equ 3" és akkor "bsf PORTB, led" de még így is feleslegesen nehézkessé teszi a dolgot, mintha egy szóval hiatkoznék rá.
Természetesen assembly.
Persze lehetne ez is:
  1. ...
  2. bra ledFelkapcsol
  3. ...
  4. ledFelkapcsol    bsf PORTB, 3


de ez meg nem valami szép megoldás, ráadásul feleslegesen ugrál a program is.
(#) potyo válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Valami ilyesmi: #define LED PORTB, 5
A kódban pedig BSF LED utasítást kell kiadni.
(#) szigetivan válasza szigetivan hozzászólására (») Márc 29, 2009 /
 
Sziasztok!

Lehet,h.azért nem volt jó nekem ez a C-s dolog, mert eddig 8.00-s MPLAB-ot használtam? (már updatelve 8.30)
(#) Lozsa válasza potyo hozzászólására (») Márc 29, 2009 /
 
Köszi! Így már sokkal jobb
(#) mazso1988 hozzászólása Márc 29, 2009 /
 
Sziasztok
a kérdésem az lenne amivel hozzátok fordulok hogy egy pillanatra sikerült egy Pic16F877-re 10v feszültséget adni
és ezután már egyáltalán nem tudtam programozni.
ilyenkor a Pic teljesen tönkrement vagy még van némi remény arra hogy használni lehessen?
Üdv
(#) watt válasza mazso1988 hozzászólására (») Márc 29, 2009 /
 
Ha utána nem lehet programozni, akkor tönkrement.
(#) Lozsa hozzászólása Márc 29, 2009 /
 
250 ns-ot kellene késleltetnem, de nem vagyok benn biztos, hogy hogyan kell kiszámolnom.
20 Mhz órajel, PIC18.

Javítsatok ki ha tévedek:
1 utasításciklus 4 órajelciklus. Tehát 1 utasításciklus= 1/20000000*4=0,0000002mp=0,2us=200ns

Tehát 2db nop elég kell, hogy legyen ugye?
Azért kérdezem mert leellenőrizni nem tudom, hogy valójában mennyit vár.
(#) watt válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
A két NOP 400ns. Ha ez megfelel, akkor más gond nem lesz.
(#) Lozsa válasza watt hozzászólására (») Márc 29, 2009 /
 
Nekem megfelelne, de mégsem jó.

Szóval egy 4x16 karakteres LCD-t próbálok használni, és az adatlap szerint az ENABLE lábat 220ns-ig kell minimum High szintre tenni. De ez így nekem mégsem elég. Ha sokkal többet várok akkor jó. Lehet valamit félreértek az LCD adatlapon? Displaytech 164A.

Na vegyük át az lcd-re kiírást:
1. RS beállítása
2. RW beállítása
3. PORT-ra teszem az adatot
4. E-t High-ra teszem
5. Várakozás
6. E-t vissza Low-ra

Ebben akkor most mennyit kéne konkrétan várni minimum?
(#) trudnai válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Idézet:
„Szóval egy 4x16 karakteres LCD-t próbálok használni, és az adatlap szerint az ENABLE lábat 220ns-ig kell minimum High szintre tenni. De ez így nekem mégsem elég. Ha sokkal többet várok akkor jó. Lehet valamit félreértek az LCD adatlapon? Displaytech 164A.”


Nehany LCD kicsit elter a szabvanytol, tehat nyugodtam lehetne tovabb varni. Amugy hogyan varsz 220ns-t? Mert ha 20MHz-es orajelet hasznalsz akkor 200ns-os lepcsokben tudsz haladni, ha 10-MHz-est akkor 400ns-osban stb. 18MHz lenne a legkozelebb.
(#) watt válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Én is azt mondom, hogy akkor várj annyit, amennyi már elegendő.
(#) potyo válasza WTC_sysOP hozzászólására (») Márc 29, 2009 /
 
Csináltál cellafrissítést rendszeres időközönként?
(#) Lozsa válasza potyo hozzászólására (») Márc 29, 2009 /
 
Nem csináltam, kellett volna?
Az hogyan nézne ki?
(#) potyo válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
Lehet, hogy kellett volna. Adatlap EEPROM-ról szóló részében keress rá a Using the Data EEPROM címre!
(#) szigetivan hozzászólása Márc 29, 2009 /
 
Sziasztok!

Lenne pár kérdésem mire még keresem a válaszokat...

1.) Azt tudom már,h. C-be lehet assemblyt beleilleszteni ezzel a módszerrel:
#asm

MOVLW 0x55

#endasm

Fordítva hogy lehet(Assembly-be C kódot)???

2. ) Ha van egy C forráskódom, azt hogy tudom lefordítani MPLAB-bal??(gondolom új projekt és megadom a fordítót)

char spi_transfer(volatile char data)
{
SPDR = data;
while (!(SPSR & (1< {
}
return SPDR;
}

Eddig még nem sikerült, mi lehet az oka??

Köszönöm!>>
(#) MPi-c válasza szigetivan hozzászólására (») Márc 29, 2009 /
 
Idézet:
„char spi_transfer(volatile char data)
{
SPDR = data;
while (!(SPSR & (1< {
}
return SPDR;
}”

Ugye nem ennyi a forráskód, mert ennek se füle, se farka.
(#) szigetivan válasza MPi-c hozzászólására (») Márc 29, 2009 /
 
Nem ennyi, csak kiszedtem belőle egy részletet és felét meg kitöröltem közben

char spi_transfer(volatile char data)
{
SPDR = data;
while (!(SPSR & (1< {
}
return SPDR;
}
>>
(#) icserny válasza szigetivan hozzászólására (») Márc 29, 2009 /
 
Szívesen elolvasom helyetted a Quick Start Guide-ot, de félek, hogy az nem segít rajtad...

A legegyszerűbb "program" így kell, hogy kinézzen. Tehát kell egy main nevű függvénynek lennie a programban, és be kell csatolni a htc.h állományt.

  1. #include <htc.h>
  2. void main(void)
  3. {
  4. }


Idézet:
„Fordítva hogy lehet(Assembly-be C kódot)?”

Nem tudom, a konkrét esetben ez hogy megy, de az általános elv az, hogy küldő eljárásként kell deklarálni azt a C függvényt, amit meg akarsz hívni. Ismerni kell a C hívási szokásait (paramétereket/visszatérési értéket hol adja át). A paraméterek odarakása után CALL vagy LCALL-lal meg kell hívni a függvényt.

De mondd, miért akarod kihívni a sorsot magad ellen, miért nem írsz inkább C keretprogramot, assemly betétekkel (ahol kell)?
(#) szigetivan válasza szigetivan hozzászólására (») Márc 29, 2009 /
 
Vagyis levágja a végét a kódnak, mert mint látom másodszorra sem jött össze a beillesztés
itt a levágott rész:

1 < < SPIF ) ) )>>
(#) szigetivan válasza icserny hozzászólására (») Márc 29, 2009 /
 
Oksa, köszi, ezek megvannak eddig.

Amúgy nem akarok nagyon ilyen módon asm-be C-t keverni, mert inkább írok az egyikben sinán, csak érdekelt,h.van-e visszafele út is
(#) szigetivan válasza icserny hozzászólására (») Márc 29, 2009 /
 
Amúgy szeretném kipróbálni ezt Bővebben: Link a programot és ehhez kellene némi segítség,h.miként tegyem.
Eddig nem sikerült.
(#) icserny válasza szigetivan hozzászólására (») Márc 29, 2009 /
 
Idézet:
„Amúgy szeretném kipróbálni ezt”

A programban világosan benne van az útmutató: cc5x fordítóval kell fordítani.
(#) Lozsa hozzászólása Márc 29, 2009 /
 
Van rá valami módszer, hogy megmérjem akár szimulátorral egy kódrészlet futási idejét?
(#) pixels válasza Lozsa hozzászólására (») Márc 29, 2009 /
 
MPLAB-ban: Debugger menü/Stopwatch. A kvarc frekvenciáját át kell állítani a project tulajdonságoknál a megfelelő értékre.
Következő: »»   445 / 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