Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
USB aljzat kontakthiba!
Szétvágtam egy USB kábelt és beforrasztottam direkte, azóta jó! kopp-kopp-kopp
Sziasztok szeretném egy mérlegnek a jeleit pic-el feldolgozni itt a link ami az alapot szolgálja.
Bővebben: Link A checksum számításnál akadtam el szeretném c-ben megírni és megérteni, de elakadtam. A cikk írója feltett egy kódot de python amit nem értek: Idézet: „# input bytes bytes = [0xAA, 0x00, 0x00, 0x00] checksum = 0 for n in bytes: checksum += n checksum %= 0xFF # set last bit to zero checksum &= ~1” Tudnátok ebben segíteni nekem?
Mi is itt a kérdés?
A műveletek leírása a Python -ban és a C -ben egyezik: + összeadás, % maradék képzés, & logikai és, ~ bitenkénti negálás.
Alapban nem értem a matematikáját amivel képzik a négy bájtból az ötödiket nem jól értelmezem vagy nem tudom esetleg rá néznél a cikkre?
A 4 byte -ot összeadja, veszi az eredmény 255 -te osztás maradékát és az alsó bitjét 0 -ra állítja, mert az kommunikáció az ellenőrző összeg felső 7 bitjét viszi csak át.
Idézet: „Note that the last byte only has 7 bits (total data length of each burst is 39 bits).” Már értem: A probléma a
sorral van C
A hozzászólás módosítva: Feb 3, 2016
Jól értem amit írtál?
Összeadom a négy májtor majd elosztom 255-el ez ad valamennyi egészet vagy 0-át ami marad maradék annak az alsó bitjét nullára állítom és ez az eredmény lesz a checksum?
Mert valamiért nem jön ki így .
AB 00 00 00 AA AB 80 00 4B 76 AB 80 00 57 82 AB 80 00 6B 96 AB 80 00 91 BC AB 80 01 03 30 Ezek jó bájt sorozatok és nem jön ki a számítással nem értem mit bénázok el....
Pedig kijön:
AB 00 00 00 AA -- Összeadva 0xAB --: 255 -tel vett maradéka 171 -- 0xAB -- 0 bit törölve: 0xAA AB 80 00 4B 76 -- Összeadva 0x176 --: 255 -tel vett maradéka 119 -- 0x77 -- 0 bit törölve: 0x76 ... AB 80 01 03 30 -- Összeadva 0x48 --: 255 -tel vett maradéka 48 -- 0x30 -- 0 bit törölve: 0x30
Akkor kezdjük az alapoknál mert ott vesztem el.....
AB 80 01 03 30 0xAB+0x80+0x01+0x03=0x12F nem 0x48 Mit bénázik el?
Igazad van, elírtam 0xAB+0x80+0x01+0x03=0x12F, már a moduló eredményét írtam ide is.
Köszönöm szépen a segítségedet megvilágosodtam
Sziasztok!
Szeretnék egy kis segítséget kérni. Egy tetszőleges távirányító (TV/VIDEO/STB..) jelét szeretném venni, illetve egy változóban eltárolni, hogy a későbbiekben egy adott funkciót adott gombhoz tudjak rendelni. Arra gondoltam, azzal kezdem, hogy a kapott értéket (ha sikerült vennem) kiírom egy kijelzőre. Mivel már készítettem hőmérőt, nem okoz gondot a kijelző kezelése, illetve a soros kommunikáció, viszont nem tudom hogy "vegyem" rá a kontrollert, hogy feldolgozza az SFH-506 által fogott jelet. Köszi előre a segítséget/ötleteket.
Szia!
2 lehetőség van: vagy tárolós szkóppal/logikai analizátorral "visszafejted", hogy a gombnak megfelelően mennyi ideig kell '0'-t vagy '1'-et adni és akkor a PIC ezt játssza le, vagy ha tudod, hogy a távirányítód legrövidebb impulzusa pl. 1 ms, akkor egy timert felprogramozol 100 us-os időre és a jeladás kezdetétől a jeladás végéig ennyi időnként megnézed, ill. elmented a tényleges jelet, majd kérésre visszajátszod 100 us-ként a lementett jelet ( esetleg annyival lehet ezt javítani, hogy csak a változások időpontját mented le ! ) !
Szia!
Köszönöm, nézegetem már ezeket az USB szkópokat, mert egyre gyakrabban kellene. Akkor azzal elméletileg vissza tudom majd fejteni. Visszajátszania nem kell a picnek, csak venni a jelet. Most pl egy dimmert dobtam össze, ami érintős és távirányítós, viszont így bármelyik gombot használom a távirányítón, ugyan úgy működik mint érintésre, arra gondoltam jó lenne szétválasztani a funkciókat, pl 4 gombra (ki,be,fényerő növelés, fényerő csökkentés). Mondjuk az igazat megvallva, ehhez nem igazán szükséges szétválasztanom a gombokat, de később máshoz még jól jöhet, én meg szeretek új dolgokat tanulni. Köszi!
Mikrokontrolleres világban ezzel többre jutsz...
Sziasztok.
Kérdésem annyi volna, hogy van nekem ez a sorom. char bytes[4] = {0xAB, 0x84, 0x00, 0x41}; Az állandók helyére változókat szeretnék pl char bytes[4] = {data1, data2, data3, data4}; Mi ennek a szintaktikája?
Szia
Így megtudod oldalni: char bytes[4]; bytes[0] = data1; bytes[1] = data2; bytes[2] = data3; bytes[3] = data4;
Köszönöm egysoros megoldás lustáknak nincs?
Sziasztok!
Kipróbáltam ezt a CCS fordítót, egyelőre csak az MPLAB-ban, mert elegem lett a Microchip C fordítójából, mindig kalapálni kell rajta valamit.. Szóval jónak is tűnhetne ez a CCS, azonban nekem zavaró, hogy ne látok bele a háttérbe. Szóval a C fájlból rögtön szinte hex lesz. Persze a disassembly-ben lehet látni hogy mi lett a kódból, de a Microchip C fordítónál jobban lehetett követni pl. a függvényeket is, bele lehetett nézni. Meg mindtha a COF fájl is tömörebb lenne.. Az optimalizációt low-ra véve se lesz áttekinthetőbb. Ez ilyen, meg kell szokni, vagy a saját IDE-ben jobban lehet látni a háttért a fordításnak? Előre is köszönöm!
Sziasztok!
Mplab 8.92 ccsc:5.044 16f877 nem tudom debuggolni ... ezt a hiba üzenetet kapom Idézet: „ PK3Err0040: The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding. Stepping target failed ” A kódom eleje
Van ötletetek mit bénázok?
Szia,
gyorsan írtam egy rövid programot és bemásolom ide neked a C/asm file-t amit generált. Remélem, hogy ez valamennyit segít eldönteni, hogy mit ad eredményül.
Szia,
Köszönöm. Gondolom ezt a saját IDE-ből való. Csábító, hogy nagyon gyorsan lehet vele haladni, és ahogy nézem, egész ügyesen optimalizál.
Szia,
Igen, a saját környezetében van egy olyan menüpont, hogy "view" és azon belül éred el a "C/asm list"-et, "call tree"-t és egyéb statisztikai adatot, mint például memóriahasználatot.
Na, első projekttel sikerült is kiakasztanom, rögtön, elsőre. Vagy én szúrtam el valamit, vagy kuka számomra a CCS is.
Najó, lehet nem dobom el ilyen hamar. A projektvarázsló rakja bele ezt a sort a header fájlba:
Ezen akad ki a fordító az include-nál. Ellenben az RS485 példaprogram lefordul rendesen (feltéve, hogy a varázslóban csak a PIC-et választom ki és a perifériákhoz nem nyúlok), MPLAB-ban is. A hozzászólás módosítva: Feb 19, 2016
Na közben rájöttem, ...hát azért ez a CCS se hibátlan, de azért használható.
Üdv!
Egy PicKit3 beszerzését fontolgatom mostanában. Hiányzik a mikrokontroller programozás, és hobbi szinten szeretném tovább űzni. Anno a suliban a CCS compiler-el tanultuk az MCU-k programozását, ezért ezzel a környezettel vagyok a leginkább tisztában. A baj az, hogy 350$ az ára, én viszont egy kis hétvégi programozgatásért nem szeretnék ennyi pénzt adni. Ennek a csomagnak azonban elérhető egy ingyenes demo változata is, annak azonban sehol sem tudtam utána nézni, hogy ez milyen limitációkat tartalmaz a fizetőshöz képest. Talált valaki valaha valami ezzel kapcsolatos leírást, vagy esetleg akad valaki, aki CCS-t használ, méghozzá az ingyenes változatot? Az a valaki megoszthatná velem hogy milyen formában limitálják a funkcionalitást, ha lejár a 45 nap. (Tudom hogy a Microchip ad ingyenes fejlesztőkörnyezetet a programozáshoz, de Netbeans alapú, és ha lehet kerülném a Java-t, persze ha nincs más, kénytelen leszek használni)
A CCSC is beszerezhető alternatív útvonalakon, hobbiprogramozáshoz jó.
Szia!
Nem idő, hanem méretkorlátozás van benne, ami 2k. Az egyszerűbb programok simán beleférhetnek. De azért erre alapozni szerintem nem érdemes, hamar betelik a 2k, hiába az optimalizáció (amit bár meg kell hagyni, egész ügyes néha). Esetleg annak kéne utána nézni, hogy az MPLAB-ba beépülő plugin (csak fordító) tartalmazza-e ezt a korlátozást: Bővebben: Link. Bár gondolom igen, túl szép is lenne... A hozzászólás módosítva: Feb 22, 2016
|
Bejelentkezés
Hirdetés |