Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Igen ezen is gondolkodtam és hát kevesebb külső alkatrész is kell hozzá ez tény.
Túlcsordulást mindenképp kell kezelnem (álló autó esete) ezért is gondoltam, hogy "csak arra" használom. Így viszont kell írni egy túlcsordulás túlcsordulása figyelést is A ccs hogy kezeli a delay függvényt? Ugye ehhez nem használ timert?
Szerintem nem használ, de én meg CCS-t nem használok, meg delay-t se szokásom, szóval nem tudom
Amúgy megrendelted már a nagyobb PIC-et? Mert ha nem, akkor ha teheted, inkább 16F886-ot vegyél, olcsóbb.
Sziasztok!
PIC18F4550 és PIC16F887 között szeretnék UART adatátvitelt véghezvinni, de egyszerűen nem akar összejönni. Valószínűleg azért, mert nem jövök rá a helyes beállításokra. Mindkettőn 20 MHz-es kristály van, viszont a 4550 szoftveresen 48 MHz az USB kapcsolat miatt.
putc()-vel egy karaktert akarok egyenlőre csak átküldeni a 887-re (amit binárisra leosztva LED-eken jelenítek meg), de jelen beállításokkal nem akar működni. Ha leveszem 20 MHz-re a 4550-et, akkor valamikor megy (akkor is rosszul megy át), valamikor pedig nem reagál rá. Ha visszaállítom HS-re csak a 4550-et, akkor az USB kapcsolat egyszerűen leáll. Megjegyzem, hogy Proteusban mindenféle beállítással működik szépen, de a gyakorlat sajnos nem követi. A két PIC között van 5 méter(!) kábel és optikai leválasztás az RX, TX-re, szóval ezzel is kalkulálni kell. Ha valakinek van ötlete, köszönöm előre is!
Sziasztok!
0--->1024-ig értéket szeretnék egy nyomó gomb segítségével változtatni. Ameddig nyomom a gombot elindul felfelé a számlálás, ha elérte az 1024-et elindul vissza. Az is jó ha elérte az 1024-et kezdi 0-tól. Ha elengedem a gombot megáll, ha van egyszerű "szellemes" megoldásotok szívesen veszem.
Csinálsz egy if-es gombfigyelést. Ebbe teszel egy érték=érték-1 utasítást. Ide tehetsz még egy if-es figyelést ami érték<=0, akkor érték=1024. Persze az értéket már az elején definiálod pl. egy unsigned in16-nak és rögtön értéket is adsz neki, 1024-et. Kb. ennyi.
Köszönöm szépen azt te hogyan oldanád meg ha úgy szeretném hogy mikor eléri az 1024-et kezdjen el vissza, mikor pedig eléri a 0-át kezdjen el felfelé számolni?
Kell egy irányjelző, amit a megfelelő feltétel esetén átváltasz, valahogy így:
A hozzászólás módosítva: Nov 2, 2014
Sziasztok!
LCD programhoz keresnék htc.h filet, de sajnos nem találtam egy oldalt sem, ahonnét tudnék letölteni. Az lenne a kérdésem, hogy esetleg tudnátok-e nekem ebben segíteni. Amikor lefordítom a programot, akkor a hibalista elejére ezt teszi, gondolom ez lesz a baja. pl.: * Error 18 "code.c" Line 1(8,15): File can not be opened Not in "C:\Program Files (x86)\PICC\Devices\htc.h" Not in "C:\Program Files (x86)\PICC\Drivers\htc.h" Not in source "htc.h" Not in local "htc.h" Not in project "C:\Users\ ...... Hi Tech C\4 Bit\htc.h" *** Error 128 "C:\Users\ ..... Hi Tech C\4 Bit\lcd.h" Line 10(2,7): A #DEVICE required before this line Köszönöm a segítséget előre is! Üdv!
Mar bocs de mi koze a htc.h filenek a CCS C-hez? Ez egy HTC C-hez tartozo include. A CCS C forumrol letoltheto LCD kezeles, pl a flexlcd.c. ez jol mukodik CCS C alatt.
Bocs a bénaságért, de még tanulgatom és próbálkozom a programozással.
Köszi, akkor megnézem ott és átírok ezt azt! A hozzászólás módosítva: Nov 3, 2014
Sziasztok!
Itt a fórumon a teljes programot keresem amit még a fórum elején toto feltett csak azóta az a link már halott. Feltenné valaki vagy toto? Nagyon megköszönném!
Minek a teljes programját keresed amit a toto feltett?
Sziasztok.
BootLoadert szeretnék használni 18f46k22 hex file betöltésére ,de nem fogom hogy is kell ezt pontosan csinálni , illetve tudom hogy először be kellene égetni egy betöltőt a PIC-be és utána már UART-ról lehet feltölteni.. Találtam egy betöltőt ds30Loader névre hallgat de nem találom a neten azt a hex filet amit először be kellene égetni a PIC-be. Valaki tudna segíteni .Gugliztam már sokat de nem sokat haladtam előre. Előre is köszi.
Nem hinném, hogy egy dsPIC30F -hez való bootloader illene a 18F -ekhez.
PIC18F uart bootloader
Eléggé univerzális, én is használtam már PIC18F25K22-höz.
"ds30 Loader is a PIC bootloader for PIC12, PIC16F, PIC18, PIC24, and dsPIC families of MCUs from Microchip. It comes with support for over 500 devices out of the box." Bővebben: Link Zoox: A letöltési oldal itt található. Ha jól látom, regisztrálni kell magad.
Sziasztok!
Remélem jó helyen teszem közzé a kérésem. Van egy egyszerű áramkör, amit szeretnék megépíteni ezen az oldalon. Az lenne a kérésem, hogy a linkel található kódot valaki "szerelje össze" nekem egy .hex fájl formában. Tudom ott a link a programhoz, és magam is belemerülhetnék, de pont ezt szeretném elkerülni, annyira nem sűrűn foglalkozom pic-ekkel hogy emiatt most órákat vacakoljak ezzel is. Pickit2-m és a jelzett tipusú pic-em van hozzá. Köszönöm előre is, ha valaki megoldaná.
Sziasztok van egy olyan problémám, hogy egy olyan vezérlést készítek, ahol 4dd nyomógomb vezérel 4db led fényerőt tehát egy ledhez egy gomb tartozik amivel lehet ki és be kapcsolni és dimmelni a fényerőt.Ezeket az értékeket eepromba tárolja. Aztán van még négy db nyomógomb ami négy memoria helyet jelent ami a beállított négy led fény erejét tárolja tehát különböző világítási képeket. A kódot már megírtam ccsc-vel működik, viszont ez egy ház 4db helyiségének világítása lenne és fontos lenne hogy össze legyen fűzve a kód mert jelen pillanatban ha állítom a fényerőt az egyik leden nem lehet közben felkapcsolni a világítást a másikban.Esetleg a forrást be tudom nektek szúrni. De inkább gondolat ébresztő gondolatok kellenének hogyan szoktátok egymásba ágyazni ilyen esetekben a kódot hogy viszonylag real time -ban lekezeljen mindent a processzor.
Javaslatokat segítségeket előre is köszönöm.
Sziasztok elkezdtem multitaskolni a programomat különböző megszakításokkal.
Bele is futottam egy problémába légyszíves nézzetek rá. MPLAB_8.89 ccsc plugin-al. Egyszerűen nem tudom megvalósítani simulator módban a portB változására a megszakítást pedig úgy nézem a regiszterekbe jól íródik minden. Be is szúrom a kódot kérlek benneteket nézzetek rá.
Köszönöm!
Szia!
Szerintem kihagytad az oszcillátorra vonatkozó fuse beállítást. Meg ezt is beleteheted : enable_interrupts(int_ext); ext_int_edge(H_TO_L); enable_interrupts(global);
Szia!
A 16F628A adatlapja alapján a portB kétféle megszakítás van az egyik az az RB0-án fellépő változás hatására a másik az az RB4-RB7 változására csinál megszakítást. Én az RB4-RB7 hatására fellépőt szeretném használni. Idézet: „enable_interrupts(int_ext); ext_int_edge(H_TO_L);” Ezek a beállítások az RB0-ra vonatkoznak, de javíts ki lehet félre értelmeztem vmit.
Így van ahogy mondod,de akkor neked #INT_RB kell nem #INT_EXT, ha jól tudom.
Igen teljesen igazad van! így már bele megy a megszakításba, de sehogyan sem tudom törőlni az Intcon regiszter RB Flag -et. betesazem a mostani codot!
A hozzászólás módosítva: Dec 9, 2014
Adatlap 5.2 fejezet, hatodik bekezdését olvasd el.
Köszönöm nézegetem és látom, hogy bent ragad de nincs elképzelésem ezt ccsc-ben hogyan kezeljem le. Tehát hogyan töröljem az RBIF flaget.
Nem nagyon értem, tehát olvassam ahhoz hogy utána tudjam törölni az rbif-flag-et ?
Mit értesz olvasás alatt? Másoljam át a port állapotát egy regiszterbe?
Valahogy így kezelem le de szerintem ennek más módja van.....
Talán megvilágosodtam köszönöm a rávezető írásokat nézzetek rá szerintetek is ez lenne a megoldás?
Még egy olyan probléma merült fel, hogy int_rb megszakítás végén nem ugrik rögtön vissza a helyére a program hanem picit elszöszöl az mplab zöld nyilacskája int_ext megszakítás sora előtt. Ez mplab hiba lehet vagy vmit én követtem el? Egy képet is csatoltam ahol ez jól látszik.
A hozzászólás módosítva: Dec 10, 2014
|
Bejelentkezés
Hirdetés |