Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   744 / 1319
(#) Attila86 hozzászólása Máj 18, 2010 /
 
Na végre előjött a hiba debug módban is! Vagy egy órát kellett rá várni. Most megvan a kis bolond...
(#) treshold hozzászólása Máj 18, 2010 /
 
Sziasztok!

PIC24-nél assembllerben hogy tudok definiálni portokat pl hogy LATC,#1-et LED jelzéssel adjak meg?
(#) Hp41C válasza Attila86 hozzászólására (») Máj 18, 2010 / 4
 
Sziasztok!

Hasonló megfontolások miatt a movff valami,STATUS is kerülendő. A 18F252-n a megszakítási rutin az adatlap szerinti mentésekkel nem működött, a 16F-en szokásossal megy minden probléma nélkül...
(#) Hp41C válasza treshold hozzászólására (») Máj 18, 2010 /
 
Szia!

Próbáld meg a #define -vel
#define LED LATC,#1
(#) Hp41C válasza Attila86 hozzászólására (») Máj 18, 2010 /
 
Szia!

Az a felesleges bsf INTCON,GIE ott van még a retfie előtt ?
(#) Attila86 válasza Hp41C hozzászólására (») Máj 18, 2010 /
 
De jól emlékszel! Igen ott van. Tudom hogy felesleges de bajt sem okoz és még nem jutott eszembe hogy kitöröljem.
(#) potyo válasza Attila86 hozzászólására (») Máj 18, 2010 /
 
Azért töröld csak azt ki onnan...
(#) SiroMokus hozzászólása Máj 18, 2010 /
 
Elnézést ha ismételném a kérdést mert átsiklottam a válasz felett. Ma turkáltam a lomban és 1 fujitsu-siemens pc-alaplapon ráakadtam 1 pic-re. Konkrétan PIC16LF76-I/SO kérdésem mit jelent az L betű kompatibilis a sima PIC16F76-I/SO-val ? . Előre is köszönöm. (tudnám használni bár a 28-SOIC tok ha levételnél nem is felrakásnál okozhat meglepetést nekem)
(#) potyo válasza SiroMokus hozzászólására (») Máj 18, 2010 /
 
Az L azt jelenti, hogy alacsonyabb feszültségről is működik. Általában az LF 2V-ról is elfut 4MHz-en (az F-nél csak 4,2V-ot garantál a gyártó). Viszont a LF maximális frekvenciája alacsonyabb szokott lenni, pl. 20 helyett csak 10MHz. Illetve még egy-két paraméterben eltérhet AD átalakítónál is. Pontos dolgokat adatlap tud mutatni, próbálj rákeresni az LF betűkre az electrical specifications részben.
(#) treshold válasza Hp41C hozzászólására (») Máj 18, 2010 /
 
Hibát ír ki, amikor bekapcsolási illetve kikapcsolási utasítást adok:
PROBA.s: Assembler messages:
PROBA.s:70: Error: Too few operands ('bset LED').
PROBA.s:72: Error: Too few operands ('bclr LED').

Ez a progi:
start:
bset LED
call delay
bclr LED
call delay
bra start
(#) Hp41C válasza Attila86 hozzászólására (») Máj 18, 2010 /
 
Szia!

Annyi problémát mégis okoz, hogy a megszakítási rutinod nem tud kilépni és nem tudja visszaállítani a mentett állapotot, ha a lefutása alatt még egy kérés bejött.... Ha a retfie fast a következő lépés és a magas szintű megszakítás jön be, a W és a STATUS értéke nem állítódik vissza, a megszakítási rutin kilépési értékét menti el a kérés feldolgozásánál. Ez a mentés fog visszaállni, mert a mentés csak egy szintű... A stackon egy szintet elpocsékol.

Tanulság: Ha nem feltétlenül nélkülözhetettlen, a megszakítási rutin ne állítsa a GIE / GIEH és GIEL biteket, hagyja a hardwerre...
(#) Attila86 válasza Hp41C hozzászólására (») Máj 18, 2010 /
 
Szia!

Rendben, meggyőztél!
(#) borvendeg hozzászólása Máj 18, 2010 /
 
Hello!
Tud valaki valami összefoglaló anyagot arrólhogy mi is az az AT parancs hogyan kell használni basicből?
A HE-store-ban kapható bluetoth modulokkal szeretném használni. Az is kérdésem lenne hogy ha ebből amodulból veszek kettőt akkor ezek 1-1 PIC segítségével tudnak e egymással "beszélgetni"?

Segítséget előre is köszi.

Bővebben: Link
(#) cNobody válasza treshold hozzászólására (») Máj 18, 2010 /
 
Azt írja, hogy túl kevés a paraméter.

Mivel alig adtál meg infót (pl legalább a PIC tipusa), ezért nehéz többet segíteni.
(#) treshold válasza cNobody hozzászólására (») Máj 18, 2010 /
 
Mellékelem a progit

PROBA.s
    
(#) cNobody válasza treshold hozzászólására (») Máj 18, 2010 /
 
define nélkül megy?

Úgy hogy a bset-hez meg a bclr-hez is konkrétan a potot írod nem a LED-et. Ha igen akkor a define-el nem stimmel valami.
Bár a 24-es PIC-ekben nem vagyok otthon.
(#) treshold válasza cNobody hozzászólására (») Máj 18, 2010 /
 
Ha így adom meg, akkor lefut az MPLAB és villog a LED:
bset LATG,#12
bclr LATG,#12
(#) Hp41C válasza treshold hozzászólására (») Máj 18, 2010 /
 
Szia!

Így használd:
bset.b LED illetve bset.w LED
bclr.b LED illetve bclr.w LED
(#) benjami válasza treshold hozzászólására (») Máj 18, 2010 /
 
Nem a legszebb, de így legalább lefordítja (a fordító inc file-jaiban is így vannak definiálva a regiszterek).
  1. .equiv LEDport, LATG
  2.         .equiv LED, 12
  3.  
  4.         bset    LEDport, #LED
  5.         bclr    LEDport, #LED
(#) trudnai válasza borvendeg hozzászólására (») Máj 18, 2010 /
 
Bar kisse off a tema:

A modem fele szoveges parancsokat lehet kuldeni, ezek tobbsege AT betu parossal kezdodik, utana jonnek a parancsok. Pl. ATD - Dial vagy ATA - Answer.

Gyakran Hayes parancsoknak is hivjak mivel a Hayes kezdte el a hasznalatat es tole vettek at mas gyartok is (ld. meg Hayes compatibilis modemek). Ez hasonlo ahhoz, mint pl az LCD-t Hitachi modszer szerint kezeljuk (a HD44780 utan), vagy ahogy az Angol a csillag csavarhuzot (kereszt hornyut) Philips-nek hivja.

Hayes Command Set
(#) treshold válasza Hp41C hozzászólására (») Máj 18, 2010 /
 
Következő hibaüzeneteket adja:

bset.b LED
bclr.b LED

PROBA.s: Assembler messages:
PROBA.s:70: Error: Too few operands ('bset.b LED').
PROBA.s:73: Error: Too few operands ('bclr.b LED').



bset.w LED
bclr.w LED

PROBA.s: Assembler messages:
PROBA.s:70: Error: Too few operands ('bset.w LED').
PROBA.s:73: Error: Too few operands ('bclr.w LED').
(#) treshold válasza benjami hozzászólására (») Máj 18, 2010 /
 
Így működik, de nálam a G-n nem csak LED-port van, hanem más is.

Ennyi erővel kiírhatom, hogy LATG,#12.
A 8 bitesnél ez simán ment, nem volt így elbonyolítva
Nincs egyszerűbb megoldás, olyan mint a 8 bitesnél?
(#) benjami válasza treshold hozzászólására (») Máj 18, 2010 /
 
Sajnos a 16 bites assembly fordítójával én sem tudtam normálisan zöldágra jutni, szerintem is borzasztó nehézkesre sikerült. Az hogy máshoz is használsz G portot nem gond, más nevet is adhatsz neki a LEDport-on kívül. Igen, beírhatod mindenhova a LATG, #12-t, de ha más lábra költözteted akkor keresgélheted végig a programodon, ha az elején megcimkézed akkor meg csak egy helyen kell megváltoztatni.
(#) treshold válasza benjami hozzászólására (») Máj 18, 2010 /
 
OK, köszi, majd alszok rá egyet aztán meglátom.
Lehet, hogy marad a LATG,#12. és komment
(#) trudnai válasza treshold hozzászólására (») Máj 19, 2010 /
 
A '#' valoszinuleg megkavarja az elofeldolgozot. Van olyan elofeldolgozo ahol a '#' hatasara idezojelek koze rakja a mogotte allo stringet... lehet ez is ilyen?

Mi van, ha igy probalod meg? (Nem probaltam meg, csak tunodom, hatha...)

  1. #define LED  LATC,\#1
(#) trudnai válasza treshold hozzászólására (») Máj 19, 2010 /
 
Elozo hozzaszolasom hagyd figyelmen kivul! Ugy tunik a C tipusu preprocesszor teljesen hianyzik az ASM30-bol. Raadasul a makrozas sem teljesen ugy viselkedik, mint a 8 biteseknel...

Ezt kiserleteztem ki, eleg kacifantos, de talan meteszi:

  1. .equiv  LEDport,  LATB
  2.         .equiv  LEDbit,  1
  3.         .equiv  ON,  1
  4.         .equiv  OFF, 0
  5.  
  6.         .macro LED set
  7.         .if ( \set )
  8.         bset.w LEDport,#LEDbit
  9.         .else
  10.         bclr.w LEDport,#LEDbit
  11.         .endif
  12.         .endm
  13.  
  14. ; hasznalata:
  15.         LED     OFF
  16.         LED     ON
(#) watt válasza trudnai hozzászólására (») Máj 19, 2010 /
 
Ha macrot használsz, akkor az első két equiv sem kell feltétlenül, talán jobb is, ha a macroban a valós portnevek vannak.
Egyébként én is pont ezzel szenvedtem annó, mikor 16bitessel kezdtem foglalkozni. Érthetetlen, miért kell valamit így eltolni! Akkoriban még azzal is kísérleteztünk, hogy más preprocesszort illesztenénk a fordítóhoz, de nem jött össze. Pedig ez csak egy egyszerű szöveg behelyettesítés lenne!
(#) trudnai válasza watt hozzászólására (») Máj 19, 2010 /
 
Hat rendesen eltoltak, az mar biztos! Raadasul az az .if sem ugy mukodik ahogy az ember elvarna, meg egy rendes osszehasonlitast sem sikerult vele megcsinalni -- oda kifejezest var aminek ha az eredmenye nulla akkor hamis, minden mas esetben igaz... ezt a faramucisagot! Vagy valamit en ertettem felre es elbenaztam volna?

Nekem teljesen ugy tunik, hogy a 16 biteseknel mar 100%-ban a C forditora oszpontositottak es mintha direkt ki akartak volna szurni az assemblyzokkel Vagy a C is ilyen gaz?
(#) treshold válasza trudnai hozzászólására (») Máj 19, 2010 /
 
Köszönöm a segítséget, de maradok akkor a sima port jelölésnél.
Majd kommentezem hogy jobban átlátható legyen
(#) zsoltee0001 hozzászólása Máj 19, 2010 /
 
Szerintetek elképzelhető olyan PIC hiba, hogy írni olvasni lehet a PIC-t (16f628) LVP módba, de a program nem fut rajta?
Egyik láb se dolgozik, de külső, se belső oszcillátorral nem megy.
Következő: »»   744 / 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