Fórum témák
» Több friss téma |
Szia!
Ne közvetlenül mérj fordulatszámot (1s alatt megtett fordulatokat), hanem egy körülfordulás idejét mérd meg. Abból számolj fordulatszámot. Ez így pontatlan és ingadozó lesz. Javítható a helyzet, ha átlagolást végzel. Mondjuk 10, 100 fordulat idejének átlagából számolsz fordulatszámot.
Köszönöm, először nem tudtam hogy álljak neki de miután az egyik fórumtag hozzászólását megtaláltam a te gondolatmeneteden keresztül az egyik fordulatszámmérővel kapcsolatos topikban jó lett a cucc. Teljesen pontos csak néhány fordulatot téved csak (4-5) és ami a legfontosabb real-time mér És a timer időzítők segítségével számolja a fordulatot úgy ahogy te leírtad csak az 18f2520-ra volt de néhány perc alatt átírtam 2550-re és tökéletes lett ezzel végére értem az 1 éve ollózgatott, okosítgatott programomnak. Mindent tud a műszerem csak éppen a lábak száma már nem elég Annak idején 20-on valahány Mátyás királyért akarták megírni nekem a programot. Nem bántam meg hogy nem fizettem ki érte ezt az összeget most már magamtól is nagyon sok mindent tudok , megtanultam ez idő alatt
Szia!
Gratulálok. Így kell csinálni. Megtanulni megírni azt a programot, ami kell a feladathoz. Így aztán az igények szerint módosítani is fogod tudni.
Köszönöm, egy dolog miatt viszont sajnos megint elakadtam. A megszakításoknál megakad a program mikor be próbálom másolni a fordulatszámmérő kódjait a meglévőbe ami működik. Ahogy beillesztem a void interrupt függvényt ami a fordulatszámmérő timer-jét kezeli túlcsordulással resetel a pic sajnos itt van bent valahol a hiba mégpedig ha az if falling edge ==2-es sortól ha kitörlöm a kódot megszűnik a resetelés. De lehet hogy a két megszakítást a hőmérő megszakításos dolgával kellene egy függvénybe összefűzni nem külön külön sajnos erre nem tudok rájönni mi okozza hibát.A 70. sor után jön a főprogram a main.
A hozzászólás módosítva: Aug 14, 2013
Amikor próbáltam beégetni a programot az 16F884-be, akkor ezt az üzenetet kaptam:
"Programming Target (2013.08.14. 23:06:41) PK2Error0009: Write failure (GetLastError = A művelet sikeresen befejeződött.) PICkit 2 Ready" lenne pár kérdésem ezzel kapcsolatban: 1. nem tudom, hogy ilyenkor a PIC égetése sikeres volt-e 2. az MPLAB-ban a VDD-t ON-ra állítottam be (programmer-->set Vdd on) ez azt jelenti, hogy a pickit2 az USB-ről kapja a tápfeszültséget az égetéshez. 3. a pk2-őt úgy kötöttem rá az USB-re, hogy már a PIC már rá volt dugva és ezután nyomtam meg az mplab-ban a connect gombot.
szia,
Mit mond arra, ha verify-t nyomsz? Ha azt mondja, talál a két program (a PICben levő hex és a PCn levő hex) akkor minden oké.
Szia!
A Write Failure programozási hibára utal. 1 - Valószínűleg nem volt sikeres. Az MpLab "Readme for PICKit 2.htm" -ben van egy utalás: Idézet: „PK2-94 PICkit 2 does not detect the device ID of a PIC16F884 device PIC16F884” Próbáld a PICKit2 saját programjával. 2 - A Vdd On azt jelenti, hogy a programozandó kontroller a PICKit2 -ról kap tápot. 3 - Soha nem szabad így csatlakoztatni a PICKIt2 -t. Előbb az UBS -re kell csatlakoztatni, aztán érdemes a Connect -et indítani. Ekkor panaszkodni fog, hogy nem találja a kontrollert, de elvégzi a beállításokat. Eztán lehet csatlakoztatni a kontrollert. Még egyszer le lehet futtatni a Connect -et, de nem kell feltétlenül. Ha ekkor is panaszkodik, akkor valami elkötés, kontakthiba van. Eztán mehet a read vagy a program.
Ne a megszakítási rutinban végezd el az osztást. Itt csak egy jelzőbitet állíts be, a főprogramban a fő ciklusban figyeld a jelzőbitet, ha 1 akkor osztás és a jelzőbit törlése.
Köszönöm szépen, ismét sokat segítettél jó is lett a dolog.
Sziasztok,
Idézet: „Programming Target (2013.08.16. 16:41:18) PIC16F886 found (Rev 0x2) Erasing Target Programming Program Memory (0x0 - 0x1F) Verifying Program Memory (0x0 - 0x1F) PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0x1683 - Value Read 0x3FFF) PICkit 2 Ready” Ez mit takar, mit nézzek át újra? Szimulátorban tökéletesen futott. Előre is köszönöm!
Sziasztok!
Kérdésem annyi lenne csak, hogy van-e esetleg egy olyan spéci PIC-es program, ami egy SD kártyáról olvassa le azt az adatot, amit a PIC valójában a FLASH memóriájáról kellene? A problémám annyi, hogy egy PIC-nek komolyabb műveletekhez eléggé kevés a saját FLASH memórája, amiről maga a program fut. Egy 16F887 esetében 8192 mennyiségű WORD memória hely van. Nekem egy olyan sok beépített programot kellene írnom, ami nem fér el ebben a memóriában. Találkoztatok-e esetleg egy olyan megoldással, mikor a PIC össze van kötve egy SD kártyával, a PIC-be beégetek egy mondjuk "BIOS"-nak nevezett programot, ami kezeli az SD kártyát, és a kártyán lévő valamilyen formátumú fájlt kezd el futtatni? Ha a programon változtatni szeretnék, akkor az SD kártyán azt a fájlt felülírom, és már az új program fut. Segítséget kérnék, hogy keressek rá a GOOGLE-ban, van-e egyáltalán ilyen program!? Köszi! Idézet: Fájlokat nem lehet futtatni, legfeljebb beolvasni és a flash memóriába beégetni. Ezt viszont nem lehet túl gyakran eljátszani, mert a flash újraírhatósági száma korlátos (típustól és a hőmérséklettől függően tipikusan 100 - 100 000 közötti érték).„Találkoztatok-e esetleg egy olyan megoldással, mikor a PIC össze van kötve egy SD kártyával, a PIC-be beégetek egy mondjuk "BIOS"-nak nevezett programot, ami kezeli az SD kártyát, és a kártyán lévő valamilyen formátumú fájlt kezd el futtatni?” Keress olyan mikrovezérlőt, aminek elég nagy a memóriája (belefér a programod), vagy pedig keress olyat, ami nem Harvard felépítésű, és a RAM-ból is tud futtatni! Esetleg egyes PIC18 típusok (pl. PIC18F8722) "mikroprocessor" módját felhasználva külső memóriából lehet futtathatod a programot. A külső memória egy része esetleg lehet RAM, s akkor töltögetheted bele a programot SD kártyáról (nem hiszem, hogy megérné a bajlódást!).
Köszönöm válaszodat.
Igen, gondolkodtam azon, hogy mi van ha a PIC önprogramozó tulajdonságával kreálnék egy programot, ami a PIC Flash memóriájába írja bele a futtatni kívánt részt, majd futtatja azt, ekkor én is a korlátozott írási számon akadtam el, hogy az előbb vagy utóbb el fog fogyni. Említetted, hogy nézzek szét másmilyen processzor felépítésben, és picit még tovább kutattam, megtaláltam a RaspBerry családot Ahogy olvastam, egy SD kártyán egy Linux lebutított szoftver indul el. 700MHz es procival és 512 rammal szerelték. Ha bele gondolok, akkor a PIC-et, mint csatoló interfészként remekül tudom alkalmazni. A kezelő szoftver meg C nyelven megírt linux-os program lenne. Beleásom magam, köszönöm a segítséget A hozzászólás módosítva: Aug 17, 2013
Sziasztok, tud valaki segíteni nekem ebben a kérdésben? Szeretnék haladni vele a 4 napos ünnep alatt. Előre is köszönöm.
Az ICSP lábak kimenetek a programban? Ha igen, a program elején némi késleltetés segíthet.
Ha bemenet, akkor a külső áramkör nem zavarhat be az ICSP működésébe? Mutasd meg a kapcsolást.
programozáskor a pic nincs az áramkörben, egy tesztpanelben van, programozó meg bedrótozva a lábakhoz.
A vezetékek milyen hosszúak? Programoztál ezzel az összeállítással másik kontrollert?
A hozzászólás módosítva: Aug 18, 2013
12f683-at igen, annál nagyobbat nem. Programozó eredeti PICKIT2. Vezetékek ~ 10 cm esek. Tápot a PicKit2 ből kap programozás közben.
Az MCLR/VPP is? LVP bekapcsolva? Több ötletem nincs.
Ezek elvileg rendben vannak, este majd tesztelgetek hátha rájövök mi a gond. Köszönöm amúgy a segítséget.
Régen a basic pont ezt csinálta. A picbe megírsz egy csomó rutint, az SD kártyán meg tárolod a rutinok futtatási sorrendjét. (Régen volt ilyen primitív modul, bár ott egy eepromban tárolták a futtatandó programot. Basic Stamp)
A hozzászólás módosítva: Aug 18, 2013
Sziasztok, úgy döntöttem mivel nagyon nem vagyok formában az alapoknál kezdem újra, a következő a kérdésem, ha jól tudom 12f886-nál a PortB lehet mind digitális be vagy ki menet.
Az alábbi kódnál viszont valamit kihagytam mert a PortB nél 0,3,5 bit low on marad, mit hagytam ki? Előre is köszönöm!
Akkor nem több portra is kéne hatással lennie?
Idézet: „The state of the ANSELH bits has no affect on digital output functions” Én ebből azt szűröm le hogy a digitális kimenethez nincs köze, vagy tévedek? A hozzászólás módosítva: Aug 18, 2013
Ez csak annyit jelent, hogy a digitális kimenetek megmaradnak, de ha analógra váltasz, akkor nem ezek kerülnek ki a lábakra ( ha visszaváltanál, akkor újra az eredeti szintek lennének! ) !
Újabb kérdés: "PKWarn0003: Unexpected device ID: Please verify that a PIC16F886 is correctly installed in the application. (Expected ID = 0x2060, ID Read = 0x0)"
ez mitől lehet? lehet kinyírtam a PIC-em valamivel? (12f886) Ha a PIC rövidzár miatt 9V ot kap azonnal halott? A hozzászólás módosítva: Aug 18, 2013
|
Bejelentkezés
Hirdetés |