Már jóideje próbálom beüzemelni a címben szereplő mikrokontrollert, sikertelenül.
Valakinek van ötlete, hogy miért nem működik?
Sajnos hivatalos Microchip példaprogramot nem találtam ehhez a mikrokontrollerhez.
Már jóideje próbálom beüzemelni a címben szereplő mikrokontrollert, sikertelenül.
Valakinek van ötlete, hogy miért nem működik?
Sajnos hivatalos Microchip példaprogramot nem találtam ehhez a mikrokontrollerhez.
Szia,SzG !
A delay könvtári függvénnyel kapcsolatosan : Ha jól értettem a kommentedből a PIC16F887- működik a delay_ms(1000) ,PIC18F4550 -el viszont nem _
Meglehet ,hogy a configban ,esetleg "még van rejtett hiba" ,és emiatt nem dolgozik a PIC18F4550 rendesen.
Az általad csatolt "C" forrásfájlban esetleg a PLLEN bitet bekapcsolni,(ez a CONFIG1H konfigurációs regiszterben található).
Csak egy javaslat hát ha ...
A saját munkáim során azt leszűrtem ,hogy bármilyen PIC-ről is van szó a CONFIG --is-- fokozott figyelemet "követel" a megfelelő működés érdekében.
Jó munkát kívánok !
Üdv : Lengyel József
0
- Kapcsolási rajzot tegyél fel légy szíves!
- továbbá egy képet a konfig bitek állásáról az égetést követő visszaellenőrzött állapotról
A működésnek HW és SW feltételei vannak, a SW csak a fele.
- táp
- reszet láb (konfig bitek szerint)
- oszcillátor (konfig bitek szerint)
- brown-out reset (konfig bitek szerint)
- watch-dog timer (konfig bitek szerint)
0
Szia !
MCLR, Clock, kölső ? belső ? ezt jó lenne tudni.
----
led.hex --> MCLR +5V-ra, Órajel 20MHz belső
Üdv.
0
szia: a PIC oszcillátora működik? (szkóp)
Bálint
0
Meglesz a probléma.
Működik, csak túl gyorsan villog a LED. (oszcilloszkóp segített)
Egy-két kérdés felmerül ilyenkor, mégpedig:
A C-kódban
#define _XTAL_FREQ -nél a tényleges kvarc értéket kell beírni, vagy a már leosztott értéket?
Továbbá:
__delay_ms(1000);
xc8 --chip=18F4550 Ezzel a chippel paraméterezve a fordítót az alábbi hibát dobja:
(1355) in-line delay argument too large
Viszont xc8 --chip=16F887 Ezzel a chippel paraméterezve probléma nélkül működik?
0
- Tényleges frekvenciát. 4MHz esetén 4000000
- Delay rutinok általában bájtos értékkel hívhatóak.
0
Ugyanaz a fordító egyszer elfogadja a __delay_ms(1000);-t, máskor nem?
Te hogy állítanál be 1 másodperces késleltetést delay függvénnyel?
0
a) delay100ms(10);
b)
for (i=0; i<10;i++)
DelayMs(100);
0