Fórum témák
» Több friss téma |
Az alábbi módon deklaráltam:
Ezt egy include fájlként hívom be a programomban const unsigned char f8x6[ 256 ][ 6 ] = { { 0x00,0x00,0x00,0x00,0x00,0x00 }, // ASCII - 0 { 0x3E,0x5B,0x4F,0x5B,0x3E,0x00 }, // ASCII - 1 { 0x3E,0x6B,0x4F,0x6B,0x3E,0x00 }, // ASCII - 2 { 0x1C,0x3E,0x7C,0x3E,0x1C,0x00 }, // ASCII - 3 . . . { 0x00,0x3C,0x3C,0x3C,0x3C,0x00 }, // ASCII - 254 { 0x00,0x00,0x00,0x00,0x00,0x00 } // ASCII - 255 }; Amíg csak kb. 20-30 karaktert deklarálok kiválóan működik, de több karakter esetén a fenti hibát adja ki.
Azt megnézted, hogy a fordító hová hozza létre az állományt? Nem véletlenül RAM-ba akarja? (Nézd meg amikor 20 karaktert hozol csak létre, hová kerül!)
De, ez biztosan a RAM-ba akarja létrehozni. C18-ban a rom kulcsszót kell valami elé tenni, ha a ROM-ba akarjuk létrehozatni. Tehát:
A const nemis lenne lényeges, de inkább maradjon ott, mert akkor a fordító szól, ha felül akarnánk írni. Már persze feltéve, hogy Algundy is a ROM területre akarta a tömböt létrehozni...
Köszönöm a segítséget !
A rom-ot odaírtam és már működik is.
Sziasztok!
Jo regen nem voltam itt, de most szukseg volna segitsegre. Remelem jo helyre irok, de ha nem kerlek szoljatok! Az lenne a problemam, hogy az allamvizsgamon dolgozom es egy egyszeru menut kellene tervezzek, programozzak egy PIC uc-re, amire sok mas kozott egy LCD is van kotve. A problema az, h nem igazan tudom, h kellene megvalositani egy menut es abban a navigalast gombokkal, marmint tudom, h kellene egy allapotautomatat tervezni, de h konkretan hogyan kellene megoldani azt nem igazan tudom. Varok minden hozzaszolast! Udv. Bernardo
Koszi!
Tanulmanyozom a peldaprogramokat!
Ha deklarálok egy strukúrát (mcc18, 18F) az eeprom címek nevesítéséhez, akkor a fordító nullákat tesz a tárba, de nekem FF kéne. Hogy lehetne egyszerűen megmondani a fordítónak, hogy oda FF-eket tegyen?
Nem sok kedvem van több 100 FF-et beírni, remélem van más megoldás!
rom struct st_Heti_Hofok_SP_Prog Hofok_Program_Tar[140]={0xff,0xff,0xff, .... ,0xff,0xff,0xff};
Így működik, csak rém gusztustalan: 3x140-szer leírni...
Sziasztok!
Egy servo motorra tett távolságszenzorral szeretnék körbenézni. Lefut amit írtam (48db mozgás történik, és van mérés is), de ahelyett, hogy szépen végig lépkedne, minden 9. mozgással a kezdő állásba tér vissza. Akárhogy számolgatok, elvileg nem csordul túl semmi. Mi lehet a baj?
Szia!
Nem tudom milyen C fordítód van, de ha itt az "int" 8 bites, akkor a " t=600+(fok*29); " ből a fok*29 bizony túl fog csordulni éppen a 9. foknál! A fok változót 16 bitesre deklaráld! Vagy ha nem akkor: t = fok; t *= 29; t += 600;
Jaigen Sosem veszek észre ilyeneket... Köszi!
Igen, köszönöm, pont ettől akartam megmenekülni. Most úgy oldom meg, hogy az EEPROM-ot nem égetem be...
Idézet: Igen, elég kézenfekvő megoldás, ha ki van törölve. „Most úgy oldom meg, hogy az EEPROM-ot nem égetem be...”
Sziasztok!
18F4550-hez kérnék linkelési felvilágosítást c-ben. API-t akarok írni, amiben megvan minden függvény, saját könyvtárakban. Egyelőre tesztüzem -> 1 db main-es forrásfájl, 1 db header, ahol mindenféle konstans makró, és 1db egyéb forrásfájl, ahol a függvények vannak most. A headert include-olnám mind a main-es fájlba, mind az api forrásfájlba, de ekkor kiakad a fordító, mivel szerinte ugyanazt két helyen deklarálom. Hibaüzenet: Configuration settings have been specified for address 0x00300000 in more than one object module. Found in './PIC18F4550_api.o', previously found in './proj1.o' Gondolom kétszer linkeli a header fájlt, mivel ha az api-ból átrakok mindent a main-es forrásfájlba, gond nélkül fordul minden.
Tegyél a header fájl elejére ilyet minden más elé:
#ifndef HEADER #define HEADER A legvégére pedig: #endif
Idézet: A konfigurációs beállításokat csak a főprogramban add meg! „Configuration settings have been specified for address 0x00300000 in more than one object” Idézet: „Tegyél a header fájl elejére ilyet minden más elé:” Nem ez a baja, hanem az, hogy a konfigurációs beállításokat fölöslegesen befordította a PIC18F4550_api.o-ba is. Ez akkor is hiba, ha minden fordítási egységnél csak egyszer csatolja be.
Köszi, így már értem, leválasztottam a headerből a configot, és működik.
Sziasztok!
Egyszerű szkóp C nyelvű forrását szeretném lefordítani, de nem tudom, melyik fordító kell hozzá. Ilyenek vannak a forrásban: // More information on the circuit can be found at: //http://www.semifluid.com/PIC18F2550_GLCD_Oscilloscope.php #include <18F2550.h> #device ADC=10 #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN #use delay(clock=48000000) #use rs232(stream=PC, baud=115200, xmit=PIN_C6, rcv=PIN_C7, ERRORS) #include Az MCC18-nak nagyon nem jön be. Köszönet!
Ez CCS C lesz. Vanis témája, keress rá, abban nézz szét.
Persze, de pár dolgot meg kell benne változtatni.
sziasztok!
kérdésem lenne hogy valaki foglalkozot e c# nyelven Modbus rs485 protokol programozásal valaha usb komunikációra pl pic18f4550...2550 re?
Hi!
Most tanulok c-t. a kkvk-on, de érdekel is. eddig gépész voltam, úgyhogy kicsit magas léc. Ha tudnál könyveket adni megköszönném. Ha még megvannak. Jó fénymásolásra is. Nagy segítség lenne. Előre is köszi a választ. Kontroller programozása is érdekel, sőt az inkább. Végül is az a végső cél. Nékem az atmega 128 at ajánlották. de azzal foglalkozom, amihez van cucc. előre is köszi a válaszod.
A PIC kezdőknek topikot ajánlom figyelmedbe. Pl. Ezt, ezt és ezt a beírást.
Könyveket leghamarabb angolul találsz, de magyarul is van ez+az. Végül, de nem utolsósorban: Ismerkedés a PIC18 mikrovezérlőkkel: PICCOLO projekt Mesterkedések PIC24 és dsPIC33 mikrovezérlőkkel: PIC-kwik projekt
Sziasztok!
Egy mikroc-ben megírt programot szeretnék leszimulálni pic simulator ide programmal. Az egyszerűség kedvéért ledes villogtatással akartam kezdeni,de elakadtam. A kontroller egy pic16f877 4mhz-es xt oszcillátorral a projektben. void main() { TRISB = 0 ; // set PORTB as OUTPUT for(; // forever { PORTB = 0xff ; // turn all LEDs ON Delay_ms(500) ; // wait 500 ms PORTB = 0 ; // turn all LEDs OFF Delay_ms(500) ; // wait 500 ms } } A kód le is fordul,de miután a létrehozott hex fájlt megnyitom a pic simulátorban start után a teljes B port magasba megy és az összes led világít és nem villog. Van valakinek elképzelése a hiba okáról?
A progit nem ismerem, de nem hexa-ban kellene megadni a TRIS-t? Valami ilyesmire gondolok:
Megadtam hex-ben is,de nem segített.
Minden kimenet magasba megy. |
Bejelentkezés
Hirdetés |