Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Pl. pwm beállítások initializálás stb...
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
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
és a c file
Valami ötlet???
Hmm ez jó és hasznos köszönöm neked most kínlódok még a dologgal majd kérdezek ha elakadok.
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.
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
Ez eszembe sem jutott valamit kitalálok.
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.
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.
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.
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.
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 }>
Az ISET (1-es láb), rajta van a 39Kohm-os lehúzó ellenállás?
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
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.
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é.
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.
A megoldást ha jól látom a datasheet, 9-es táblájánál találod.
Már próbáltam úgy is, hogy minden portnak külön állítottam be az áramot de semmi.
Sziasztok! Soros adatvételénél a getc(); parancson kívül hogyan tudom még kiolvasni az adatot a regiszterből?
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.
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?
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.
Az a helyzet, hogy dsPic-el kísérletezem, és ott már 4 szintű.
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
Köszi nézem majd megírom, hogy sikerült-e.
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?
|
Bejelentkezés
Hirdetés |