Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   739 / 1320
(#) icserny válasza spepe hozzászólására (») Máj 12, 2010 /
 
Idézet:
„de kíváncsi vagyok azért, hogy az ISA portos karit, hogyan is lehetne használni”

Nézd meg itt: PIC18F452 and 3COM 3C509B Ethernet ISA card

A kulcsmondat: "The 3C509B and 3C589B support 8-bit accesses, which the 3C509 and 3C589
adapters did not."
(#) icserny válasza icserny hozzászólására (») Máj 12, 2010 /
 
Mégegy projekt: PIC16F677A+3COM509
(#) 5cmarzo hozzászólása Máj 12, 2010 /
 
Hello!

Nem tudok MPLAB SIM-ben megszakítást generálni (soros RX-re). Potyo utalásából szerintem lehet! Megpróbáltam a program futása közben a megszakítást jelző Flag-et "1"-esbe állítani, de nem engedi!

Üdv. Marzo
(#) icserny válasza 5cmarzo hozzászólására (») Máj 12, 2010 /
 
Hogy próbáltad, ki nem engedte, miért nem ütöttél a kezére?
(#) Pez666 válasza icserny hozzászólására (») Máj 12, 2010 /
 
Köszönöm szépen.
(#) Hp41C válasza 5cmarzo hozzászólására (») Máj 12, 2010 /
 
Szia!

A megoldás a stimulus...
(#) spepe válasza icserny hozzászólására (») Máj 13, 2010 /
 
KÖSZÖNÖM!!

Hálám örökké üldözni fog!! Csak útól ne érjen...
(#) 5cmarzo válasza Hp41C hozzászólására (») Máj 13, 2010 /
 
Szia!

Köszönöm szépen! Sokat segítettél!
(#) Attila86 hozzászólása Máj 13, 2010 /
 
Már egyszer kérdeztem hogy hogyan lehet az MPLAB-ban a programkódból részleteket (mondjuk a szubrutinokat) áttenni egy másik asm fájlba hogy az MPLAB abból olvassa őket be. Akkor kaptam is rá választ de 20-30 perc kínlódás árán sem sikerült megcsinálni csak felbosszantottam magam és ezért azóta nem is foglalkoztam vele. Most viszont már megint kezd elég átláthatatlan lenni a programom... Ez nem mehet így tovább.

Szóval legyen szíves valaki még egyszer elmagyarázni hogy hogyan lehet egy másik asm-et csatolni a projektemhez úgy hogy az MPLAB abból keresse ki a szubrutinokat!
(#) Attila86 válasza Attila86 hozzászólására (») Máj 13, 2010 /
 
Na, azt hiszem sikerült is!
(#) icserny válasza Attila86 hozzászólására (») Máj 13, 2010 /
 
Assemby nyelven nem csináltam ilyet, de feltételezem, hogy:

1. Relokálható kódot kell fordítani, ehhez a forrásban is másképp kell csinálni egyet és mást. Bővebben lásd az MPASM Helpjében a Relocatable Code, Generating, és a Relocatable Objects címszavaknál. Vannak összehasonlító példák a "hagyományos" és a relokálható kódra.

2. Linker scriptet kell használni, mert ebből derül majd ki, hogy az UDATA vagy CODE direktíva utáni adat/kód hova kerüljön.

3. A másik (többi) állományban definiált nevekre csak akkor tudunk hivatkozni, ha a hivatkozást tartalmazó állományban előzőleg szerepeltettük egy EXTERN direktívában azt a nevet, amelyre hivatkozni akarunk.

4. Kell egy "főprogram", amelyik elhelyezi a reset és az interrupt vektorokat, és definiálolyan címkéket, amelyekre ezek ugratnak.

Az említett Help-beli példákon kívül az MPASM telepítési könyvtárában a Template/Object mappában találsz mintaprogramokat minden MCU-hoz.

Ha megnézed a PICCOLO projekt példaprogramok gyűjteményében a ledflash_a.asm programot, akkor az is egy példa lehet a linker állomány és a relokálható kód használatára. Ezek felhasználásával, és a fent említett EXTERN direktívával biztosan menni fog!

Arra vigyázz, hogy a Config biteket és a reset/interrupt vektorokat csak egy állományban (a "főprogramban") szabad definiálni! A pic18cxxx.inc állományt viszont sejtéseim szerint minden "fordítási egységbe" (minden .asm állományba) be kell csatolni, hogy tudják a regiszterek neveit és címeit...
(#) Attila86 válasza icserny hozzászólására (») Máj 13, 2010 /
 
Köszönöm, de sikerült megoldani.
  1. #include        "PIC-es panelmero_szubrutinok.inc"

Ahová ezt írom, oda az MPLAB befordítja az egész inc állományt úgy ahogy van. Eddig azért nem sikerült egyébként mert eddig ezt az egész asm fájl legelejére írtam.
(#) icserny válasza Attila86 hozzászólására (») Máj 13, 2010 /
 
Hát ez lehet, hogy pillanatnyilag kényelmesnek tűnik, de nem a megoldása, hanem a megkerülése a problémának.
(#) Attila86 válasza icserny hozzászólására (») Máj 13, 2010 /
 
A célom pontosan ez volt vele, szóval nekem ez teljesen jó. A sok matematikai algoritmus tette eddig ki a fájl kb 70-80%-át. Ezek nélkül már sokkal átláthatóbb az állomány.
(#) icserny válasza (Felhasználó 15355) hozzászólására (») Máj 14, 2010 /
 
1. Erre való a Chip Select jel.
2. Ha a PIC Master-ként működik, akkor nem szükséges a SS jelet használni, bármelyik kimenettel megszólítható egy külső (slave) egység. Ha több egységgel akarsz kommunikálni, akkor több lábat kell használni (egyikkel egyiket, másikkal másikat választod ki).

Az SS bemenet arra való, hogy Slave üzemmódban ezzel lehessen megszólítani a PIC-et.
(#) kissi válasza Attila86 hozzászólására (») Máj 14, 2010 /
 
Szia!

Attól működhetett volna, csak elfelejtetted átugratni !

Steve
(#) icserny válasza (Felhasználó 15355) hozzászólására (») Máj 14, 2010 /
 
Idézet:
„Ezeket a lábakat CLK, DO össze lehet kötni galvanikusan, vagy jobb soros ellenállással?”
Össze lehet kötni, csak a terhelhetőséget be kell tartani (ugyanúgy mint a hagyományos logikai hálózatoknál).

Arról pedig neked kell gondoskodni, hogy egyidejűleg csak egyetlen eszköz legyen aktív (legfeljebb csak egy Chip Select lehet lehúzva, s egyik se lebegjen).
(#) zsimon válasza icserny hozzászólására (») Máj 14, 2010 /
 
Én anno 2000-ben csináltam 16F877-hez ilyet.
Csinálj először is egy kivonás rutint 32-32 biten.
Utánna meg az egész annyi hogy léptet, kivon (ha a különbség nem negatív (MSB=1) akkor) a a hányadost növeled 1-el. Ezt az egészet meg kell csinálnod 32x, a végén pedig megkapod a hányadost, és a maradékot a kivonó rutin különbségi változójában. Nem tudom mennyire érthető ez, ha gondolod lerajzolhatom.
Ja: de ASM-ben, egy PLL szintézerhez ahol 10.6MHz-t (FK) ki kellett vonni a vételi frekvenciából, majd számolni belőle N, és P osztót.
(#) zsimon válasza attika hozzászólására (») Máj 14, 2010 /
 
Az OSCAL lehet csak egy tünet más jellegű problémára. Igazából MPLAB-ban van egy olyan, hogy Config registers, a tetején egy pipa: config bits set in code. Szóval ha te egy hex-file-t égetsz be, akkor az írója tuti kódon belül (mondjuk a main.asm legelején) megadta a hardverének konfigjait. Lehet a te égető progid (ez a winpic) nem veszi figyelembe, hanem saját maga egy menüben (mint MPLAB-ban) állítgatja a config biteket.
Próbáld meg winpic-et átnézni, hogy ne szóljon bele a hex file-ban található config beállításokba. Főleg hogy a kapocsolási rajz szerint ez a belső oszcillátort használja, használná.
(#) szkrep hozzászólása Máj 14, 2010 /
 
Egy PIC12F509 egyik lábával szeretnék 3db ledet villogtatni. Mivel 1 láb ekkora áramot nem szeret, egy tranzisztorral kapcsolom (bc547).
Ha csak 1 ledet kapcsol működik, ha mind a 3 bent van, nem működik. Miért?
Mellékelem a komoly kapcsolást; gondolom az ellenállásokkal van baj...

ledkapcs.PNG
    
(#) icserny válasza szkrep hozzászólására (») Máj 14, 2010 /
 
Az emittert kösd földre, a kollektorkörben pedig minden LED-del köss sorba egy-egy áramkorlátozó ellenállást (470 ohm vagy amennyi kell)! Működnie kell...
(#) kissi válasza szkrep hozzászólására (») Máj 14, 2010 /
 
Párhuzamos kapcsolásnál a legkisebb nyitófeszültségű nyer, megfogja a feszültséget az ő saját értékén és a többiek már nem tudnak világítani! ICSERNY kolléga megoldásával viszont jónak kell lennie!

Steve
(#) watt válasza (Felhasználó 15355) hozzászólására (») Máj 14, 2010 /
 
Ha van valamilyen nyers feszültség is(pl. 12V) akkor a 3 LED-et sorba kötheted, és elég egy kiszámolt ellenállás úgy, hogy a 3 LED-en eső feszültséget kivonod a számításnál. A 12V az ellenállásra megy... De ez igazán nem PIC téma!
(#) trudnai válasza (Felhasználó 15355) hozzászólására (») Máj 14, 2010 /
 
Milyen szimulatort hasznalsz, van benne SPICE is?
(#) giorgio88 hozzászólása Máj 14, 2010 /
 
Sziasztok!

A segítségeteket szeretném kérni.
Mit jelent az, hogy egy mikrovezérlő órajele DC-25 MHz között van? A 25 MHz még megy, de a DC mit jelent?
Lehet nagyon alap a kérdés, de nekem most nagyon hasznos lenne!
Előre is köszi!
(#) potyo válasza giorgio88 hozzászólására (») Máj 14, 2010 /
 
Azt jelenti, hogy teljesen megállíthatod a kontroller futását, ha nem adsz a bemenetére jelet. Vagy tetszőlegesen lassan futtathatod, akár nyomógombbal is adhatod neki az órajelet. DC az angolul egyenfeszültség, vagyis hogy nem kap meghatározott frekvenciájú órajelet a kontroller, hanem stabilan egyik szinten van az órajelbemenete.

Ezt azért lényeges így megadni, mert vannak technológiák, amiknek van alsó működési frekvenciája is, nem csak felső. A PIC viszont olyannal készül, aminél nincs alsó határ.
(#) giorgio88 válasza potyo hozzászólására (») Máj 14, 2010 /
 
Nagyon köszönöm!
(#) tamibandy hozzászólása Máj 14, 2010 /
 
Sziasztok,

Lenne egy kérdésem/kérésem.

Ha valaki már dolgozott ADC 10 bit-es (Analog Input) input programozással MPLab-ban, PIC32MX460F512L-es mikrocsippel, akkór megkérném hogy segitsen.

Esetleg ha van valami példaprogi vagy valami...

Én a következőt szerentém csinálni: Van 3 db Gyrom és azoknak az értékét leolvasni és kiküldeni RS232-esen az olvasott értéket PC-re.

A kommunikációs fele már megvan, csak arra nem jövök rá hogy hogyan tudom kiolvasni a 0-1023 megfeleltetett értéket. Valami pontokat meg ipszilonokat most is kiad. A pontokat a GND-re csatlakoztatva olvassa ki és az ipszilonokat pedig ha hozzáérintem az árramforráshoz. Ezért úgy gondolom hogy a pontok jelentik a 0-ot és az ipszilonok az 1023-at az 0-1023-as skálán.

Várom ötleteiteket.

Köszi,
Üdv,
Bandy
(#) watt válasza tamibandy hozzászólására (») Máj 14, 2010 /
 
Az ADC-hez egy 16bites regiszter tartozik. Ezt két bájtban tudod átküldeni a PC-re. A két bájtot a helyiértékén kezelve és összeadva kapod a mért értéket.
(#) tamibandy válasza watt hozzászólására (») Máj 14, 2010 /
 
Köszi a gyors választ.

Egy kicsit ki tudnád jobban fejteni? Mert ennyiből még nem értem hogy mit is kellene csináljak és főleg hogy hogyan tudom kettessével átküldeni a 16bitet, ott meg összerakni?
Következő: »»   739 / 1320
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