Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1072 / 1320
(#) Hp41C válasza p_istvan hozzászólására (») Máj 25, 2012 /
 
Szia!

Most csak mi ketten nem látjuk, honnan lehetne letölteni a XC30 -t? Erről a lapról idéztem a fentieket...
Az XC8 és az XC32 letölthető, az megtaláltam...
(#) _vl_ válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
XC16-nak hívják... de így sincs. Amikor március végén elkezdtem játszani az XC8-cal meg az XC32-vel, már akkor is májust írtak. Hát lassan vége a májusnak....
(#) icserny válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
Idézet:
„Most csak mi ketten nem látjuk, honnan lehetne letölteni a XC30 -t?”
XC30-at ne keress, mert XC16-nak hívják!

Linket én sem találtam, de ha beírod a böngésző URL-be, hogy: http://www.microchip.com/mplabxc16windows akkor letöltődik valami (még nem próbáltam kibontani).
(#) p_istvan válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
Szervusz!
XC16-nak hívják és valamikor a múlt héten le is töltöttem a linuxos verziótm de most tényleg nincs ott
(#) kszabi válasza icserny hozzászólására (») Máj 25, 2012 /
 
Sziasztok!
innét sikerült letölteni, fel is települt, próbálom beüzemelni.

üdv kszabi
(#) _vl_ hozzászólása Máj 25, 2012 /
 
Egyébként ha valaki belefut abba a hibába, hogy a v1.10-es MPLAB X egyes PIC32 cpu-knál (pl. a 250 is ilyen) nem hajlandó az XC32-t használni, akkor segítek meghekkelni a config fájlt, amit elrontottak a gyárban.
(#) bacalb hozzászólása Máj 25, 2012 /
 
Üdvözlet! Hozzáértő segítségét kérném, aki bele tudna javítani a programba, hogy a stop gomb ne legyen. Hanem , ha elengedem a bal, ill. jobb gombot, már le is álljon a motor. Köszönöm előre is. http://www.123eng.com/forum/f19/pic-beginners-32655/
(#) Hp41C válasza bacalb hozzászólására (») Máj 25, 2012 /
 
Íme...

stepper.asm
    
(#) p_istvan válasza p_istvan hozzászólására (») Máj 25, 2012 /
 
A linuxos link: XC16
Május 9.-én még kint volt a honlapon a letöltés.
(#) bacalb válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
Nagyon köszönöm a gyors választ, de szégyellem magam, mert beírni beletudom a hex-et pickit2-vel, de az asm-et nem tudom ic-proggal sehogy átkonvertálni hexre, ill. verifinél hibát ír. Esetleg hex-be is kérhetem?
(#) Hp41C válasza bacalb hozzászólására (») Máj 25, 2012 /
 
Szia!

Előbb le kell fordítani a asm -et hex -re az MpLab programmal...

stepper.HEX
    
(#) bacalb válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
Köszönöm, így már rendben, csak valami hiba lehet, mert nem indul el egyik irányba sem a motor, csak a fékezés működik, ha ráadom a feszültséget. A programozás végigmegy, ellenőrzés is hibátlan.
(#) reechee88 hozzászólása Máj 25, 2012 /
 
Lehetséges i2c kommunikáció egy picf4523 és egy pic24fj64gaa02 ic között? Egyik 5 v-on, másik 3,25 v-on üzemel. Valami speciális szintáttevő kell vagy össze lehet őket kötni csak simán? Esetleg egy egyszerű feszültségosztóval ez kivitelezhető?
(#) Hp41C válasza reechee88 hozzászólására (») Máj 25, 2012 / 1
 
(#) Hp41C válasza bacalb hozzászólására (») Máj 25, 2012 /
 
Talán ez jobb lesz...
(#) icserny válasza reechee88 hozzászólására (») Máj 25, 2012 /
 
Idézet:
„Valami speciális szintáttevő kell vagy össze lehet őket kötni csak simán?”
Simán össze lehet kötni, mert a pic24fj64ga002 mikrovezérlő RB5...RB11 kivezetései tolerálják az 5 V-os jelszintet. Arra ügyelj, hogy ebben az esetben az I2C busz vonalat 5V-ra kell felhúzni (nem pedig 3,3 V-ra).
(#) bacalb válasza Hp41C hozzászólására (») Máj 25, 2012 /
 
MESTERMUNKA!!! Köszönöm szépen. Még 1 kérdés. Ez megvalósítható potis joystickkal is, hogy esetleg a sebesség is szabályozható legyen, elkerülve a VR1-es szabályzót?
(#) reechee88 válasza icserny hozzászólására (») Máj 25, 2012 /
 
Köszi szépen!
(#) _vl_ válasza reechee88 hozzászólására (») Máj 26, 2012 /
 
Amúgy mi ez a picf4523? Mert a net nem sokat tud róla...
(#) thomas01 hozzászólása Máj 26, 2012 /
 
A következő problémában segítségre lenne szükségem:

az a tervem, hogy csináljak egy digitális órát, (asm-ben írtam a programot) a másodperc részét már pic simulatorban ki is tudta jelezni, de nem tudom, hogy milyen kóddal lehetne azt elérni, hogy amikor a 9-es íródik ki a kijelzőre, akkor a perc része váltson át 0-ról 1-re. Az eddig megírt programrészlet így néz ki.


AEQU20
ORG0
GOTOBEÁLLÍTÁSOK

;-----------------

BEÁLLÍTÁSOK

CLRF PORTB
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
GOTO PROGRAM
;------------------


PROGRAM

MOVLWB'0111111';0
MOVWFPORTB
CALLIDŐ
MOVLWB'0000110';1
MOVWFPORTB
CALLIDŐ
MOVLWB'1011011';2
MOVWFPORTB
CALLIDŐ
MOVLWB'1001111';3
MOVWFPORTB
CALLIDŐ
MOVLWB'1100110';4
MOVWFPORTB
CALLIDŐ
MOVLWB'1101101';5
MOVWFPORTB
CALLIDŐ
MOVLWB'1111101';6
MOVWFPORTB
CALLIDŐ
MOVLWB'0000111';7
MOVWFPORTB
CALLIDŐ
MOVLWB'1111111';8
MOVWFPORTB
CALLIDŐ
MOVLWB'1101111';9
MOVWFPORTB
CALLIDŐ
GOTOPROGRAM


;--------------

IDŐ

MOVLWD'50'
movWFA
XDECFSZA,F
GOTOX
RETURN
;--------------------
END
;----------------Ennél a megoldásnál a portok közvetlenül a kijelző LED-jeit jelentik. Előre is köszi a segítséget.
(#) reechee88 válasza _vl_ hozzászólására (») Máj 26, 2012 /
 
Bocsi, elírtam! Pic18f4523-at akartam írni...
(#) Hp41C válasza thomas01 hozzászólására (») Máj 26, 2012 /
 
Szia!

Nem jó a megközelítés. Ennél a megoldásnál minden idő számítási ágon biztosítanod kell, hogy a végrehajtás pontosan 1 s legyen. Ráadásul az egész kontroller kapacitást elhasználod, nem is goldoltál az óra beállítási lehetőségére sem.

A változó deklarációból látható, hogy nem 16F84 -re írtad a programot. A 16F628(A) -ban van Timer2, azzal kerek frekvenciájú órajellel is lehet pontos időzítést csinálni.
- Állítsd be a Timer2 megszakítást mondjuk 200us, 500us, 1 ms vagy valami hasonlóra.
- Készíts egy kiszolgáló rutint, ami számolja a megszakításokat, ha eltelt 1 s, akkor jelzi a főprogramnak, hogy módosult az idő.
- A főprogram várjon a jelzésre, ha megjött, növelje az időt, alakítsa át BCD kódra, majd 7 szegmenses vezérlő kódra és küldje ki a port(ok)ra. Törölje a jelzést.
- A főprogram kezelje a beállító gombokat is, minden állításra jelezzen az idő számító rutinnak.

Így megszabadulsz, attól, hogy minden ágnál pontosan tartsd az 1s végrehajtási időt. Eredményül a kontrollered jó néhány feladatot is el tud még végezni.

Nézd meg a Propeller bázis vagy a Wand óra (16F628 RTC-s verziók) programját.
(#) peti13 hozzászólása Máj 26, 2012 /
 
Sziasztok!

A segítségeteket szeretném kérni. Van egy PIC18F14K22-em és szeretném az usart-ot használni. C18-ban írtam is egy kódot, consolban megkapom tőle amit elküld, hibátlanul, de küldeni egyszerűen nem tudok gépről. A pic RX lábán néztem a jelet, és ott van. A hardverben csak a pickit 2 van rákötve meg az usart lábai, semmi más. Mi lehet a baja? Előre is köszönöm, a forráskód pedig ő:
  1. #include <p18f14k22.h>
  2. #include <delays.h>
  3. #include <usart.h>
  4. #include <stdlib.h>
  5.  
  6. #pragma config FOSC = IRC, PLLEN = OFF, PCLKEN = ON//16MHZ belső oszci PLL nélkül
  7. #pragma config FCMEN = OFF, BOREN = OFF, PWRTEN = OFF
  8. #pragma config WDTEN = OFF, MCLRE = ON, LVP = OFF
  9.  
  10. #define shiftPORTAbits.RA2
  11. #define dataPORTCbits.RC0
  12. #define latchPORTCbits.RC1
  13.  
  14. void delay_ms (unsigned int ms);
  15.  
  16. char layer[64];
  17. volatile char rs_232_input = 0;
  18. int i;
  19. int j;
  20. int k;
  21.  
  22. void usart_init (void)
  23. {
  24. #defineRS232  
  25. SPBRG = 25;
  26. BAUDCON = 0b00100000;//RX-TX not invert, 16Bit baud, no rollover
  27. TXSTA = 0b00100000;//Enable 8bit async transmit mode, low speed baud
  28. RCSTA = 0b10010000;//Enable 8bit receiver module
  29. PIE1bits.TXIE = 0;
  30. PIE1bits.RCIE = 0;
  31. }
  32.  
  33. void shifting (void)
  34. {
  35. shift = 0;
  36. shift = 1;
  37. shift = 0;
  38. }
  39.  
  40. void transfer (void)
  41. {
  42. latch = 0;
  43. latch = 1;
  44. latch = 0;
  45. }
  46.  
  47. void clear (void)
  48. {
  49. for(i=0; i<17; i++)
  50. {
  51. data = 0;
  52. shift = 0;
  53. shift = 1;
  54. delay_ms(2);
  55. shift = 0;
  56. }
  57. }
  58. void delay_ms(unsigned int ms)
  59. {
  60. do{
  61. Delay1KTCYx(4);
  62. } while(--ms);
  63. }
  64.  
  65. void data_input_rs(void)
  66. {
  67. for(i = 0; i <=63; i++)
  68. {
  69. putrsUSART((const far rom char *) "ok");//sorok kiolvasása
  70. if(PIR1bits.RCIF){
  71. layer[i] = RCREG;
  72. }
  73. }
  74. }
  75. void main(void)
  76. {
  77. unsigned char rs_232_rx_status = 0;
  78.  
  79. OSCCON = 0x70;//internal 16MHz
  80. TRISA = 0;
  81. TRISC = 0;
  82. PORTA = 0;
  83. PORTC = 0;
  84. usart_init();
  85. putrsUSART((const far rom char *) "Welcome\n\r");
  86. TRISBbits.TRISB5 = 1;
  87. rs_232_input = RCREG;
  88. while(1)
  89. {
  90. if(PIR1bits.RCIF){
  91. PORTAbits.RA2 = 1;
  92. }
  93. }
  94. }
(#) _vl_ válasza peti13 hozzászólására (») Máj 26, 2012 /
 
ANSEL/ANSELH lesz az, amit keresel.

Ezen felül tessék átszokni a LATA/B/C regiszterek használatára.
(#) peti13 válasza _vl_ hozzászólására (») Máj 26, 2012 /
 
Helló! Köszi a választ, lenulláztam mind a kettőt de semmi változás. A BAUDCON regiszterben megpróbáltam invertálni az rx lábat azért van egyes benne, amúgy már kivettem onnan.
(#) reechee88 hozzászólása Máj 26, 2012 /
 
Az mitől lehet, hogy ha küldök valamit a pic18f4523-ről a pic24fj64gaa02-ra azt megkapom, de ha visszafelé akarok küldeni valamit akkor mindig 0xFF értéket tudok kiolvasni az SSPBUF regiszterből?
(#) thomas01 válasza Hp41C hozzászólására (») Máj 26, 2012 /
 
Az a helyzet, hogy még nagyon amatőr vagyok ebben a témában, ez egy fényorgona kódja volt eredetileg, úgy alakítottam át arra, hogy LED-es kijelzőket hajtson meg, sajnos a parancsok közül is szinte csak ezeket ismerem, nekem csak arra lenne szükségem, hogy minden alkalommal amikor a 9-esre vált a kijelző másodperce, akkor a perchez +1-et adjon hozzá. Gondolom ezt lehetne valamilyen feltétele parancsal megoldani. Ha lehet, akkor nem nagyon írnám át a programot.
(#) _vl_ válasza reechee88 hozzászólására (») Máj 26, 2012 /
 
Kismillió oka lehet. Oszcilloszkóppal nézted már?
(#) reechee88 válasza _vl_ hozzászólására (») Máj 26, 2012 /
 
Az most nincs kéznél sajnos. Két 4,7K-s ellenállással húztam fel 5v-ra a két vonalat és a pic18 eltudja küldeni a saját dolgait. Visszafelé sajnos már nem jön értelmes adat. Ha 0x00-t küldök, akkor is 0xFF jelenik meg a túloldalon. A kismilló ok közül 1-2-őt említenél?
(#) Hp41C válasza thomas01 hozzászólására (») Máj 26, 2012 /
 
Szia!
A keresett utasítás az "incf tizmasodperc,f" ... Előbb a tízmásodperc növelése jönne, az értékét meg ki kell tenni valamenyik portra... Ezeknek az utasításoknak a végrehajtásához idő kell, így a 9 -ről 0 váltás mindig több időt fog igényelni, mint a többi. Aztán ha a tízmásodperc 6 -ra lépne, akkor a perc növelése, a tízmásodperc nullázása, kiírása egy portra ugyanígy egyre több időbe telik. Az órádba így egy jelentős késést építesz be...
Következő: »»   1072 / 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