Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1060 / 1319
(#) menyus válasza icserny hozzászólására (») Márc 17, 2012 /
 
Köszönöm, logikus. Én közvetlenül akartam megoldani, legalábbis ez irányban gondolkodtam. De még ezeket a "x6 /10" et is körbe kell járnom, nem osztottam / szoroztam még sosem kontrollerrel. Fejben még elmegy de egy PIC el... :no:
(#) menyus válasza icserny hozzászólására (») Márc 17, 2012 /
 
Esetleg van erről valami konkrét példa valahol..? Mert pl (ezt az oldalt használom általában..) itt semmi nincs az osztásról / szorzásról.
(#) icserny válasza menyus hozzászólására (») Márc 17, 2012 /
 
Én ennyit tudok erről. C nyelven meg * és /. A barátunk meg ezt mondja.
(#) menyus válasza icserny hozzászólására (») Márc 17, 2012 /
 
Hálás köszönetem, bár egy kukkot nem értek belőle...egyelőre. De van ilyen topic is itt helyben.. Köszönöm a segítséget! :yes:
(#) menyus válasza icserny hozzászólására (») Márc 17, 2012 /
 
Még egy láma kérdés....ez működik a PIC16 os szériánál is? Csak mert ez az "rrcf" utasítás nem rémlik nekem, de lehet csak azért mert sosem használtam még...
(#) kukac_24 válasza menyus hozzászólására (») Márc 17, 2012 /
 
Szerintem az rrcf-et a 16F-os sorozatban nem lehet használni.
(#) menyus válasza kukac_24 hozzászólására (») Márc 17, 2012 /
 
Ez nagyon így lehet mert sehol sem találom az utasítás készletben.
(#) kissi válasza menyus hozzászólására (») Márc 17, 2012 /
 
6-al szorzás például: megszorzod 2-vel és 4-el ( ezek csak shiftelések ) és a kapott eredményeket összeadod !
Emlékeim szerint Hp41C kollégának volt többször is jó ajánlata ilyen rutinokra, keress rá !

Steve
(#) Zsora válasza menyus hozzászólására (») Márc 17, 2012 /
 
A szorzást összeadással és balra léptetéssel, az osztást pedig kivonással és jobbra léptetéssel lehet megoldani. Bővebben:

Szorzás 6-tal:
X*6=X*4+X*2=(X<<2)+(X<<1)

Osztás 10-zel (8 bites) (X/10=Y):
0. Y=0
1. X-(10<<7)>=0 ? Ha igen: X=X-(10<<7), Y=Y+(1<<7)
2. X-(10<<6)>=0 ? Ha igen: X=X-(10<<6), Y=Y+(1<<6)
...
8. X-10>=0 ? Ha igen: X=X-10, Y=Y+1

Röviden ennyi.
(Az osztás maradéka az X válozóban marad.)>>>>>>>>>>>>>
(#) Hp41C válasza menyus hozzászólására (») Márc 17, 2012 /
 
Persze, hogy működik... Csak ez működik, úgy hívják rrf ill. rlf. A másik (rrncf, rlncf) a C nélküli nincs a 16F -eken...
(#) lidi válasza icserny hozzászólására (») Márc 17, 2012 /
 
Hi !

Nem ismerem a VC -t, én BCB 6 ot használok.
Na annak a COM port komponensének is van openje, mint ahogy ebben a példában is találtam egy opent:

serialPort1->Open();

Ez előtt kellene beállítani szerintem a
serialPort1->BaudRate=57600; -al.
(#) menyus hozzászólása Márc 18, 2012 /
 
Óhh, a bőség zavara megoldás fürtökben...Köszönöm mindenkinek.. :yes:
(#) icserny válasza lidi hozzászólására (») Márc 18, 2012 /
 
Idézet:
„Ez előtt kellene beállítani szerintem a serialPort1->BaudRate=57600; -al.”
Köszönöm a tippet! Valami ilyesmi lesz, mert egy másik programban (ez a változatosság kedvéért VC++ 2005 és kézzel, legördülő listáról választható a baudrate) ilyet találtam:
  1. this->serialPort1->BaudRate =  Convert::ToInt32(baudBox->SelectedItem);
(#) ZsoltyFM hozzászólása Márc 18, 2012 /
 
Sziasztok ! valaki használ oshon szimulátort win7 alatt ?
Nekem ugyanis az a problémám hogy hiába állítom a kompatibilitást win xp módba akkor sem birom használni az asemblert a tols menüben. minden alkalommal valamiféle run-time error hibával leál és az egész program bezárul. csak szimulálni tudok benne módosítani nem. és ez felettébb idegölő
(#) icserny válasza lidi hozzászólására (») Márc 19, 2012 /
 
Feltelepítettem a VC++ 2008 Express-t és kipróbáltam. Működik a javaslatod! Mégegyszer köszönöm.

Rögzítsük az utókornak:
Microchip Application Library, USB szekció, Device - CDC - Basic Demo mellett van egy minta alkalmazás PC-re: PC Dynamic Software Example
Ez sokkal robosztusabb kapcsolatotot biztosítt, mint a korábbi CDC Terminal, mert a kapcsolat megszakadása esetén automatikusan újra kapcsolódok a VID=0x04D8 PID=0x000A eszközhöz (ez a Microchip USB device CDC demók azonosítója).

A Form1.h állományban az alábbi apró változtatással lehet beállítani a kívánt adatsebességet (az alapértelmezett 9600 helyett):
  1. //Open the COM port.
  2. serialPort1->BaudRate = 57600; //Ezt a sort szúrtam be
  3. serialPort1->Open();
(#) Programmer hozzászólása Márc 19, 2012 /
 
Használt/talált már valaki C++ fordítót 32bites PIC hez?
(#) icserny válasza Programmer hozzászólására (») Márc 19, 2012 /
 
Van olyan egyáltalán?
(#) Programmer válasza icserny hozzászólására (») Márc 19, 2012 /
 
A TI/Freescale chipjeihez már láttam, ezért kérdem talált-e valaki PIC hez, esetleg tud-e a létezéséről...
(#) Attila86 hozzászólása Márc 19, 2012 /
 
Most írtam programot először 12F-re. Nagyon zavaró a CPFSEQ, CPFSLT, CPFSGT, TSTFSZ stb. utasítások hiánya...
A program rém egyszerű, mégsem működik. A TMR2 megszakításnál a flagbit törlése után a decfsz Számláló sornál a Watch ablak szerint nem csak a Számláló regisztert dekrementálja, hanem a Kitöltési_tényező-be is beírja ugyan azt az értéket ami a Számláló regiszterben van. Miért? Nagyon érdekes.
(#) lidi válasza icserny hozzászólására (») Márc 19, 2012 /
 
(#) Hp41C válasza Attila86 hozzászólására (») Márc 19, 2012 /
 
Szia!

- Ne használj ékezetes betüket a szimbólumok nevében,
- Vedd ki a megszakítás visszatéréséből a bsf INTCON, GIE -t, a retfie megcsinálja.
(#) icserny válasza lidi hozzászólására (») Márc 19, 2012 /
 
Idézet:
„MPLAB C forditoja az nem jó ?”

Nem, mert C++ volt a kérdés.
(#) icserny válasza Attila86 hozzászólására (») Márc 19, 2012 / 2
 
Idézet:
„a Watch ablak szerint nem csak a Számláló regisztert dekrementálja, hanem a Kitöltési_tényező-be is beírja ugyan azt az értéket ami a Számláló regiszterben van. Miért?”
Ha nem írsz a változónév után res 1-et, akkor ugyanaz lesz a címe a két változódnak!
(#) Attila86 válasza icserny hozzászólására (») Márc 19, 2012 /
 
Basszus... Köszi!
(#) Attila86 válasza Attila86 hozzászólására (») Márc 20, 2012 /
 
5V a PIC12F615 tápja. A bemenetként beállított lábakon kb 2,2V-ot mérek, pedig elvileg bekapcsoltam a felhúzó ellenállásokat. Mit csináltam rosszul? Itt van újra a kód:
(#) kissi válasza Attila86 hozzászólására (») Márc 20, 2012 /
 
OPTION regiszter ?

Steve
(#) nyemi hozzászólása Márc 22, 2012 /
 
Sziasztok.
Lenne egy kérdésem, de előre is elnézést ha túl banális.
Azon gondolkodtam hogy érdemes e az utolsó program helyre betenni egy reset vektorra való ugrást, az esetleg elkószált programom vissza terelgetésére? Vagy nincs semmi értelme mert egy jól megírt programnál ilyen nem fordulhat elő. Válaszokat előre is köszönöm.

Üdv nyemi.
(#) Peter65 válasza nyemi hozzászólására (») Márc 22, 2012 /
 
Szia!
De van értelme. Magam részéről az üresen marad program memória területet mindig feltöltöm ilyen visszaugratással, de ez nem feltétlenül a reset vektor, hanem egy olyan pont, ahonnan a program értelmesen folytatódhat, akár úgy, hogy a külső környezet észre sem veszi, hogy valami "elkószálás" történt.
(#) nyemi válasza Peter65 hozzászólására (») Márc 23, 2012 /
 
Köszi a választ.
Szóval akkor előfordulhat . Gondolom zavart környezettben még nagyobb az esély? Hmm. Lehet hogy kénytelen leszek "rászokni" Watchdog-ra.
Mert eddig hanyagoltam. Még egyszer köszönöm.
Üdv nyemi.
(#) trudnai válasza nyemi hozzászólására (») Márc 23, 2012 / 1
 
Idézet:
„Azon gondolkodtam hogy érdemes e az utolsó program helyre betenni egy reset vektorra való ugrást, az esetleg elkószált programom vissza terelgetésére?”


Nincs ertelme, a program szamlalo ugyis tulcsordul, es igy a programszalad a reset vectorra fog csorogni.

Ha ilyen tortenik az mar regen rossz, debug eseteben erdemes valami debug kodra ugratni azzal a technikaval amit Peter65 emleget, eles kornyezetben pedig erdemes azt csinalni amit Peter65 emlegetett -- en azzal toldanam meg, hogy amennyiben ilyen tortenik akkor minimum egy LED-et kigyujtanak ami kikapcsolasig egve marad, igy tudom, ha a felhasznalonal valami nagy galiba tortent... Lehet akar valami szamlalot is bele tenni es monitorozni, hogy hanyszor tortent ilyesmi.

De ahogy mondod a watchdog is es ez is csak egy biztonsagi intezkedes, ha watchdog kiidozit vagy ha melle ugrasz akkor mar regen valami nagyon nem stimmel a firmware-edben.
Következő: »»   1060 / 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