Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   925 / 1320
(#) potyo válasza neutrox hozzászólására (») Feb 28, 2011 /
 
Miért ragaszkodsz a 16F627-hez?
(#) neutrox válasza potyo hozzászólására (») Feb 28, 2011 /
 
van itthon belőle 3 db... de ha van olyan alternatívád ami olcsó és a célnak tökéletesen megfelel, de a leg fontosabb inkább az lenne hogy ASM ben szeretnék látni/írni stack ot... és nem szeretnék külső perifériát használni (nehéz dolog elismerem, de szeretem a kihívásokat).

ui.: rájöttem hogy az ASM nél nincsen gépibb gépi kód.
(#) watt válasza neutrox hozzászólására (») Feb 28, 2011 /
 
A három 627-re sem férne rá szerintem. ASM-ben pedig eleve kilátástalan, hogy meg tudod írni.

Nézzd meg a 18F97J60 családot. Vannak kisebb lábszámúak is, én most pl. egy 87J60-al küdök, ami 80 lábú, de van 64 lábas is, talán kicsit könnyebb forrasztani, bár ez mindegy, mert a 100lábút se nehéz, ha van jó Fluxod...
(#) adamhollos hozzászólása Feb 28, 2011 /
 
Mi a különbség a trisx és a portx között?

most akkor pl. a ra0-át, hogy állítom kimenetre?

mit csinál ez?ez kell?
MOVLW 0x06
MOVWF ADCON1
(#) icserny válasza adamhollos hozzászólására (») Feb 28, 2011 / 1
 
A TRISx regiszterek az adatáramlás irányát szabják meg (amelyik bit 1, az Input, amelyuk 0, az pedig Output).

A PORTx regiszterek írása a port kimeneti adatregisztert állítja be, olvasása pedig a bemenet állapotát adja meg.
  1. MOVLW 0x06
  2. MOVWF ADCON1
Az ADCON1 regiszterbe 6-ot ír. Egyes mikrovezérlőknél az ADCON1 regiszter állítja be, hogy AN0-tól kezdve hány analóg csatorna legyen engedélyezve. Bővebben lásd az adatlapban, az Analóg digitális átalakító leírásánál!
(#) zolo hozzászólása Feb 28, 2011 /
 
Sziasztok!

PIC16F887-et programozok és egy kis problémám van a PWM-mel. Ha a kitöltési tényezőt nullára állítom akkor logikai 1 jelenik meg a kimeneten, ha 100%-ra akkor 0V van a lábon. Nem fordítva kellene lenni?
(#) adamhollos hozzászólása Feb 28, 2011 /
 
Itt az első programom , szerintetek jól van megírva?
PIC16f690-re írtam azt szeretném, hogy a pic köröl legyen futó fény. Mindenhová irtam komentet, így legalább azt lehet tudni mit szerettem volna.

16d690 adatlap

villogó.asm
    
(#) Hp41C válasza adamhollos hozzászólására (») Feb 28, 2011 / 1
 
Szia!

- Hiányzik a CBLOCK lezáráse, az ENDC,
- A STATUS és más regiszterek bitjeit írt inkább szimbólikusan: pl STATUS,5 helyett STATUS,RP0
- Az RLF a STATUS C bitjét lépteti be a regiszterbe, az utasítás előtt be kellene állítani: BSF STATUS,C
- Az utasításoknál meg kellene adni, hogy hol képződjön az eredmény. Ugyan itt nem okoz gondot a default f azaz field, de jobb rászokni. pl: RLF PORTA,f, decfsz T1,f

Állítsd be az MPLAB SIM -et szimulátorként, fordítsd újra, és lépésenként haladva megnézheted mi történik a kontrollerben...
(#) Hp41C válasza zolo hozzászólására (») Feb 28, 2011 /
 
Szia!

Mutasd meg azt a néhány sort, ami beállítja a PWM kitöltését és az inicializálását. Nevezd meg a pontot is ahol mész, jó lenne valami kapcsolási részlet is.
(#) zolo válasza Hp41C hozzászólására (») Feb 28, 2011 /
 
kapcsolás nincs, közvetlenül a lábon mérek a szkóppal

  1. PR2             = 0X3F;                 //Periódus idő
  2.         TMR2    = 0X00;                 //Számláló regiszter nullázás
  3.         T2CON   = 0X01;                 //Timer2 előosztás
  4.         CCPR1L  = 0X00;                 //Kitöltési tényező
  5.         CCP1CON = 0X0F;                 //Kit. tény. alsó 2 bitje(..||....) és PWM üzemmód(....||||)
  6.         T2CON   = 0X04;                 //Timer2 indítása
(#) adamhollos válasza Hp41C hozzászólására (») Feb 28, 2011 /
 
minden egzes forgatás elött álicsam status c-t 1-re
? Vagy csak az adott regiszter első forgatása elött?
(#) Hp41C válasza adamhollos hozzászólására (») Feb 28, 2011 /
 
Szia!

Minden RLF az aktuális C bitet lépteti be. Ha igazolni tudod, hogy az RLF végrehajtása előtt a C bit értéke 1, akkor nem kell újra beállítani. A port regiszterek felső bitjeit olvasva néha 0 -t kapunk...
Ezért ajánlottam a szimulátort..
(#) Hp41C válasza zolo hozzászólására (») Feb 28, 2011 / 1
 
Szia!

A 2. sor felesleges, a 6. pedig elrontja a 3. beállítását.
Az 5. sor aktív alacsony szintet állít be a PWM kimeneteknek, tehát 0 kitöltés 5V lesz.
(#) adamhollos válasza Hp41C hozzászólására (») Feb 28, 2011 /
 
Tehát akkor rlf b"0100 0000" nem mindig egyenlő b"1000 0000"-val? és 100 0000-ból 0000 0000 lesz ha a C 0, a C-ből pedig egy?
(#) Hp41C válasza adamhollos hozzászólására (») Feb 28, 2011 /
 
Szia!

A 16F690 esetén:
- A PORTA 7. és 6. bitje olvasáskor 0 -t ad,
- A PORTB 3. és 0. bitje olvasáskor 0 -t ad,
- A PORTC mindeegyik bitje olvasható.

Ha STATUS,C a következő utasítások előtt 1,
az RLF PORTA,f ; elerdénye a PORTA = 0011 1110 esetén:
PORTA = 0011 1101 lesz, a C értéke pedig 0.

az RLF PORTB,f ; elerdénye a PORTB = 0011 0000 esetén:
PORTA = 0110 0000 lesz, a C értéke pedig 0.

az RLF PORTC,f ; elerdénye a PORTC = 1010 1010 esetén:
PORTA = 0101 0101 lesz, a C értéke pedig 1.

Használd a szimulátort.
(#) zolo válasza Hp41C hozzászólására (») Feb 28, 2011 /
 
A 6. sor figyelmetlenség volt. De nem értem az adatlapon, hogy mi a P1A, P1B... Én nem ezeket használom, hanem a CCP1 és CCP2 lábakat. Átírtam a CCP1CON regisztert 0X0C-re és jó, de nem tudom a pontos okát.

adatlap.JPG
    
(#) Hp41C válasza zolo hozzászólására (») Feb 28, 2011 / 1
 
Szia!

A CCPCON1:7..6 bitjei mondják meg, melyik kimenet(ek)et használja a modul. Ha ez 00, akkor csak a P1A azaz CCP1OUT lábat használja.

A CCP1CON:3..0 állítja be a modul funkcióját:
1100 - PWM aktív magas kimenet(ek)
1111 - PWM aktív alacsony kimenet(ek).
(#) zolo válasza Hp41C hozzászólására (») Feb 28, 2011 /
 
Megvaaan


Köszönöm szépen a válaszokat.

De akkor az aktív szintet csak a CCP1 esetében tudom változtatni? A CCP2 esetén ezek szerint nem is lehet?
(#) gyumee hozzászólása Feb 28, 2011 /
 
segítségeteket szeretném kérniakövetkező problémámban.Adott a 2lábon járó LCD cikk programja amely HITech forditóban akar csak müködni.Elkezdtem átirni CCS forditóra hogy müködjön, de a következőt visitja CCS:
Idézet:
„Error:Attempt to create a pointer to a constant”


a forrás pedig a következő:
  1. void lcd_put(unsigned char ins,unsigned char rs)
  2. {
  3.    lcd_2wire_put_nibble(  (ins>>4)& 0x0F,rs);
  4.    Delay_Us(LCD_DELAY_PUT4BIT);
  5.  
  6.      lcd_2wire_put_nibble(ins,rs);
  7.      Delay_Us(LCD_DELAY_PUT4BIT);
  8.  
  9.      Delay_Us(LCD_DELAY_WRI);
  10. }
  11. void lcd_put_str(char Str[])
  12. {
  13. unsigned char i;
  14.  
  15.   for (i=0; Str[i]!=0; i++)  lcd_put(Str[i],1);
  16.   return;
  17. }
  18. void lcd_put_strc(char const Str[])
  19. {
  20. unsigned char i;
  21.  
  22.   for (i=0; Str[i]!=0; i++)  lcd_put(Str[i],1);
  23.   return;
  24. }
  25. void main(void)
  26. {
  27.       lcd_initdisplay();
  28.       lcd_put_strc("This is a test");// ide mutat a hibaüzenet
  29. }


Tudnátok segíteni a probléma megtalálásában?
Vagy nem írta már át valaki véletlenül ezt a "2 lábon járó LCD-t" CCS fordítóra?
(#) adamhollos hozzászólása Márc 1, 2011 /
 
Na akkor ez már jó?

A szimulátort nem értem, hogy működik (mplab sim), el tudná valaki magyarázni?

villogó.asm
    
(#) jdani hozzászólása Márc 1, 2011 /
 
Hali. Megkérhetnék valakit, aki megír egy rövidke egyszerű progit 12f629-be? Mára szükségem lenne rá, viszont én nem tudok programozni.
(#) Hp41C válasza adamhollos hozzászólására (») Márc 1, 2011 / 1
 
Szia!

A szimulátor a pic teljes viselkedését (néha van egy két kivétel: SPI, I2C stb) szimulálja. A programodat lépésenként futtathatod, töréspontokat helyezhetsz el benne, futtathatod a töréspontokig ill. folyamatosan. Ha megállítod, a kontroller belső állapotát megnézheted.
Gerjesztő jeleket lehet definiálni, és megnézni, hogy a program jól válaszol a jelekre. A kimenetek értékét grafikonnal (logikai analizátos szerűen) vagy táblázatosan is vizsgálhatod. stb.

A programban válaszd ki a MPLAB SIM -et, fordítsd újra a projectet. F7 -tel lépésenként halad a program végrehajtásában. A változóidat a Watch ablakban kisérheted figyelemmel (név szeint add a litához)...

Ne várd el, hogy más nézze végig...
(#) raiman hozzászólása Márc 1, 2011 /
 
Sziasztok
Egy olyan kérdéssel fordulnék hozzátok, hogy szeretném megépíteni a Vicsys féle TOO berendezést, amit a 12F629 PIC vezérel. A gondom az lenne, hogy ezt a fajta Pic-et én nem tudom égetni a pickit 2 klón "szilva" féle égetőmmel ( valami OSCCAL gondja van mindíg).
Kérdésem az lenne hogy 12F683-al vajon működhetne a kapcsolás?
A válaszokat előre is nagyon köszönöm.
Sziasztok
(#) enree válasza raiman hozzászólására (») Márc 1, 2011 /
 
Szia!

Nekem is klónom van és nincs baja a 629-el... biztos minden érintkezik, aminek kell?
(#) enree válasza jdani hozzászólására (») Márc 1, 2011 /
 
Mit kellene tudjon a progi?
(#) raiman válasza enree hozzászólására (») Márc 1, 2011 /
 
Szia
Az érintkezésekkel nincs gond.
Már sok Picet égettem vele. Csak a 12F629-et nem szereti.
(#) raiman válasza raiman hozzászólására (») Márc 1, 2011 /
 
Ezt irja ki az égetés után.

hiba.jpg
    
(#) enree válasza raiman hozzászólására (») Márc 1, 2011 /
 
Szerintem, a pic hibás...
(#) raiman válasza enree hozzászólására (») Márc 1, 2011 /
 
Elképzelhető az is.
Majd veszek egy másikat és kipróbálom.
Köszi a gyors segítséget!
(#) jdani válasza raiman hozzászólására (») Márc 1, 2011 /
 
PIC halál....
Következő: »»   925 / 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