Fórum témák

» Több friss téma
Fórum » CCS PIC Compiler
 
Témaindító: (Felhasználó 1542), idő: Ápr 3, 2006
Lapozás: OK   43 / 118
(#) vilmosd válasza messer hozzászólására (») Nov 21, 2010 /
 
Hol vetted eszre?
(#) messer válasza vilmosd hozzászólására (») Nov 21, 2010 /
 
Pl. pwm beállítások initializálás stb...
(#) vilmosd válasza messer hozzászólására (») Nov 21, 2010 /
 
Ez teljesen termeszetes, mert a HW fuggo dolgokat illik lekezelni. De az alap forras termeszetesen nem valtozik, sot lehet irni ugy is, hogy kikeruld a HW fuggest. Alljon itt egy pelda forras, amit 3 kulonbozo PICre lehet leforditani (tobbre is). Pont a soros vonal ISR kezelesere.
Udv Vili

EX_SISR.C
    
(#) whalaky hozzászólása Nov 21, 2010 /
 
Tovább küzdök a TCP/IP stack-el
Tippem nincs mi lehet a baja, ránéznétek hogy mit nem látok?
A jelenség, hogy a B5 ENC RESET egyáltalán nem működik.
Azonos FUSES beállításokkal megy a led villogtatás a B5-ön, így az rendben lehet.
a hardware.h
  1. #define PIN_ENC_MAC_SO  PIN_B0    // HW PIC (SDI) <<<< ENC
  2.       #define PIN_ENC_MAC_SI  PIN_C7    // HW PIC (SDO) >>>> ENC
  3.       #define PIN_ENC_MAC_CLK PIN_B1    // HW SPI CLK
  4.       #define PIN_ENC_MAC_CS  PIN_B4
  5.       #define PIN_ENC_MAC_RST PIN_B5
  6.       #define PIN_ENC_MAC_INT PIN_B3
  7.       #define PIN_ENC_MAC_WOL PIN_B2
  8.       #define ENC_MAC_USE_SPI TRUE
  9.       // LCD PINS
  10.       #define LCD_RS_PIN      PIN_C0
  11.       #define LCD_RW_PIN      PIN_C1
  12.       #define LCD_ENABLE_PIN  PIN_C2
  13.       #define LCD_DATA4       PIN_A0
  14.       #define LCD_DATA5       PIN_A1
  15.       #define LCD_DATA6       PIN_A2
  16.       #define LCD_DATA7       PIN_A3
  17.       // LEDS
  18.       #define USER_LED1       PIN_C5     // green
  19.       #define USER_LED2       PIN_C4     // yellow
  20.       #define USER_LED3       PIN_A4     // red
  21.       #define ENC_MAC_USE_SPI TRUE      //due to an errata in the ENC28J60, you should always use HW SPI to assure that SPI clock is over 8MHz!
  22.       #define mac_enc_spi_tris_init()  TRISB=(0b1100); TRISC = (TRISC & 0b01000000) | 0x10;


és a c file
  1. lcd_init();
  2.    printf(lcd_putc,"%Lu",PIN_ENC_MAC_RST); <<< OK, PIN_B5
  3.    int i;
  4.    for (i=0;i<7;i++) {
  5.       output_toggle(PIN_ENC_MAC_RST); <<< itt már nem megy
  6.       delay_ms(100);
  7.    }

Valami ötlet???
(#) messer válasza vilmosd hozzászólására (») Nov 21, 2010 /
 
Hmm ez jó és hasznos köszönöm neked most kínlódok még a dologgal majd kérdezek ha elakadok.
(#) messer válasza vilmosd hozzászólására (») Nov 21, 2010 /
 
Megpróbálkoztam az alapokkal, icd2-vel debug pickit2-vel küldöm az adatot az rx lábra, azt nem értem, hogy adat nélkül mi okoz #int_rda megszakítást a belinkelt programban? 30f2010-nél.
(#) vilmosd válasza messer hozzászólására (») Nov 21, 2010 /
 
Hali
Esetleg probald ki ICD nelkul, a vett adatokat, es egyebeket kiirni egy LCD-re, vagy visszakuldeni a PC-be. A soros atviteleleg szigoru idozitest kivan, es ezt lehet megzavarja az ICD mukodese. Proba, cseresznye.
Udv Vili
(#) messer válasza vilmosd hozzászólására (») Nov 21, 2010 /
 
Ez eszembe sem jutott valamit kitalálok.
(#) whalaky válasza whalaky hozzászólására (») Nov 22, 2010 /
 
OK, hagyjuk! Összeraktam 4620-al és első rúgásra indult.
Gyanúm szerint a TRIS-ekkel van a baj, ha megoldódott közzéteszem.
(#) messer válasza vilmosd hozzászólására (») Nov 22, 2010 /
 
Probléma megoldódott Pickit2 uart mód vdd nem volt pipálva így nem volt meg az 5v. Ezért történ még az adatok előtt megszakítás.
(#) messer hozzászólása Nov 22, 2010 /
 
Sziasztok. dsPic-ben szeretnék soros átvitelnél (vétel) figyelni egy bitet "FERR:Framing Error Status bit" Ez az UxSTA:UARTx Status and Control regiszter 2-dik bitje. Tudtok nekem erre egy jó módszert? Asm-ben egyszerű volt mert közvetlen láttam a regiszter adott bitjeit.
(#) icserny válasza messer hozzászólására (») Nov 22, 2010 /
 
Itt már volt szó bit és byte változók használatáról. Én is ajánlottam már a #BYTE és #BIT kulcsszvakra történő rákeresést a Helpben vagy a CCS C kézikönyvben. Ezekkel el lehet boldogulni a kérdezett esetben is.
(#) DecebaL hozzászólása Nov 25, 2010 /
 
Sziasztok!

Lenne egy kis problémám hátha valaki tud segíteni.
Max6956 ledmeghajtó IC - re megírtam az alábbi programot majdnem minden mükődik is csak a ledek áramát nem tudom szabályozni.
Már probálkoztam mindennel de nem tudok rájönni, hogy mit nem veszek észre.


void Max6956_Write(int reg, data )
{
I2C_Start();
I2C_write(0x80);
I2C_write(reg);
I2C_write(data);
I2C_stop();
}


void Max6956init()
{

Max6956_Write(0x02,0x0A); // itt állítanám a led áramát ha müködne

int j;
for (j=0; j<5
{
I2C_Start();
I2C_write(0x80);
I2C_write(0x0B+j);
I2C_write(0x55);
I2C_stop();
j++;
}
}


void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_oscillator(OSC_8MHZ);


max6956init();
Max6956_write(0x04,0x01); //config register

Max6956_write(0x4C,00); // port 12 - port 19 ledek bekapcsolása

}>
(#) vicsys válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
Az ISET (1-es láb), rajta van a 39Kohm-os lehúzó ellenállás?
(#) DecebaL válasza vicsys hozzászólására (») Nov 25, 2010 /
 
Igen rajta.
(#) DecebaL válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
Az ellenállás cseréjével tudom változtatni az áramot, de a programból sajnos nem sikerül.
39Kohms ellenállással mindegyik porton a ledek az árama 7,5 mA
(#) vicsys válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
Ha jól értem, akkor a 0x07 érték 12mA áramot állít be, a 0xFF pedig mindent bekapcsol. Mérted is az áramot, vagy csak szemre nézted...? A led fényerő nem változik egyenletesen az árammal arányosan.
(#) vicsys válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
39Kohm mindegyik porton?? Ez mit jelent?? Csak 1 darab ellenállás kell bele! Az is az IC 1-es lába és GND közé.
(#) DecebaL válasza vicsys hozzászólására (») Nov 25, 2010 /
 
Mértem az áramot.
Az ic 1 lábára van van téve a 39Kohmos lehúzó ellenállás.
és az ic mindegyik portjára P12-P31 -ig tettem egy ledet, amikor bekapcsolom bármelyik ledet vagy akár az összeset akkor az áram mindenhol 7,5mA. A led és az IC lába közt nincs ellenállás.
Programból nem tudom módosítani az áramot egyáltalán.
(#) sirály12 válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
A megoldást ha jól látom a datasheet, 9-es táblájánál találod.
(#) DecebaL válasza sirály12 hozzászólására (») Nov 25, 2010 /
 
Már próbáltam úgy is, hogy minden portnak külön állítottam be az áramot de semmi.
(#) messer hozzászólása Nov 25, 2010 /
 
Sziasztok! Soros adatvételénél a getc(); parancson kívül hogyan tudom még kiolvasni az adatot a regiszterből?
(#) sysy válasza messer hozzászólására (») Nov 25, 2010 /
 
18F4550 péda.

#byte RCREG = 0x0FAE // UART vételi regiszter címe

int Vett_Adat; // ide kell beolvasni a vett byte-ot

Vett_ADAT=RCREG; // ez olvassa ki a változóba a vett adatot

nem elegáns, de működik.
(#) sirály12 válasza DecebaL hozzászólására (») Nov 25, 2010 /
 
Egy-két link, segíthet.

Bővebben: Link
Bővebben: Link
(#) messer válasza sysy hozzászólására (») Nov 26, 2010 /
 
Szia értem köszözönöm. Abban az esetben ha a buffer több szinten is tele van akkor az ismételt egyenlőség mindig más szintnek az adatát olvassa ki?
(#) potyo válasza messer hozzászólására (») Nov 26, 2010 /
 
Olyan túl sok szint nincs. Két bájtot tud tárolni, miközben a harmadikat fogadja. Amikor a harmadik beérkezik teljesen és az első még nincs kiolvasva, akkor bebillenti az Overrun flag-et és természetesen ez már adatvesztést jelent.
(#) messer válasza potyo hozzászólására (») Nov 26, 2010 /
 
Az a helyzet, hogy dsPic-el kísérletezem, és ott már 4 szintű.
(#) messer válasza messer hozzászólására (») Nov 26, 2010 /
 
Helló! Megcsináltam a dmx vevő programot, müködik is csak van pár dolog amit nem értek.

Csak akkor hajlandó jól működni, ha a main tartalmazza a
  1. temp=getc();
sort. Amúgy buffer overrun error-al befagy. Nem nagyon értem, hogy miért mikor és hol csordul túl.

kód.rtf
    
(#) DecebaL válasza sirály12 hozzászólására (») Nov 26, 2010 /
 
Köszi nézem majd megírom, hogy sikerült-e.
(#) cassis hozzászólása Nov 26, 2010 /
 
dsPIC30F assembly kérdésem lenne. Az alábbi minta kód debuggolásakor a _reset címke után lévő sorokban a W15 d'2048', a W0 d'2150' re áll be. A __SP_init és __SPLIM_init 8 bites literálisok hol vesznek fel értéket?

dsPIC_AD-1.s
    
Következő: »»   43 / 118
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