MPLAB a C18: Po BUILD SUCCEEDED nelze nahrát HEX do 18F2331

Dobrý den,
právě zakouším programovat pic v jazyce C, používám MPLAB a C18. Program se mi snad povedlo vytvořit dobře, ale mám problém, když chci nahrát HEX do mikrokontroleru.
Kompiler ho přeloží a vyskočí nějáké okno, které nevím co znamená a napíše BUILD SUCCEEDED. Okno je v souboru.

[code]#include <dwengoDelay.h>
#include <p18f2331.h>
#include <delays.h>

void main()
{
PORTC = 1;
Delay10TCYx(200);
PORTC = 0;
Delay10TCYx(200);

while(1);
}[/code]

Programátor používám od Brenner8-P a když dám nahrát HEX tak to vypíše nějáké chyby.
Start to program FLASH## 232 error(s)
Start to program ID - ok
Start write Configuration## 1 error(s)

Nevím co to chce ručně nakonfigurovat, prosím poraďte.
Děkuji.

:arrow_right: administrator: přejmenováno z “Problém s naprogramováním PIC18F2331”


Trošku jsem to poopravil, ale stejně to furt vyskakuje ten druhej zdroják a HEX nejde zapsat do picka.

[code]#include <p18f2331.h>
#include <delays.h>

void main()
{
TRISC=0b00000000;
while(1);
{
PORTC = 0b11111111;
Delay10TCYx(200);
PORTC = 0b00000000;
Delay10TCYx(200);
}
}[/code]

BUILD SUCCEEDED. ze jeto prelozene a vytvorene v poriadku…

To jo, ale když chcu nahrát HEX do picka, tak to vyhodí

Start to program FLASH## 232 error(s)
Start to program ID - ok
Start write Configuration## 1 error(s)
a nenahraje to do toho

Střelím do prázdna - programátor píše něco ve smyslu “use manual config”, myslím, že to znamená, že někde manuálně nastavuješ konfigurační bity.
Jak je máš nastaveny?
Hlavně se to týká bitů chránících proti čtení - já programuji s JDM a IC-prog (zatím teda řadu PIC16Fxx) a pokud nastavím ochranu proti čtení, programátor vypisuje chybu. Ale program zapíše, což mě přivádí k další otázce - opravdu v procesoru nic není? Ale nezkoušej to čtením přes programátor :slight_smile:

jj přesně tak use manual Config-settings
Nikde jsem nic nenastavoval, ale v PIC-configuration je dost záložek CONFIG1H, CONFIG2L, CONFIG2H,… to je ono?
To už jsem zkoušel, vycucnout z PICka hex a nic v něm nebylo.
1.JPG

Jestli je procesor chráněný proti čtení, tak vycucnout hex z procesoru je právě to, co nepůjde.

Co udělá procesor, když ho připojíš na napětí?
Podle programu by měl přepínat log 1 a 0 na portu C, samozřejmě za předpokladu, že je naprogramovaný a má zadaný správný oscilátor - to je právě v těch bytech CONFIGxx. Co přesně v těch bytech je?

Sorry, teď mě došlo, že je jich tam moc.
Zajímá mě hlavně: CONFIG4L (je povoleno low voltage programming)?
CONFIG5L a H (to je code protect)?
a případně CONFIG1H (nastavení oscilátoru)

Když ho dám na napětí tak dělá prd.

CONFIG4L
Low voltage program enabled
Stack Overflow Reset enabled

CONFIG5L
Code Protect 002200-00FFF disabled
Code protect 010000-01FFF disabled

CONFIG1H
Oscillator 11XX EXT RL-CLKOUT… (mám FT 2MHz)
Tady bude možná zakopanej pes

Změnil jsem na LP (32kHz…200kHz) a nejde furt to hází

– HEX-file re-loaded
– use manual Config-settings

Erase PIC -finished
Start to program FLASH## 197 error(s)
Start to program ID - ok
Start write Configuration## 1 error(s)

co skusit zapsat ty pojistky do programu ?

:open_mouth: Pojistky? Rozvedl byste to prosím?

" Pojistky " mysleno konfiguracni slovo ,
na konci souboru “p18f2331.h” sou vsechny vypsany , je tam i moznost je nechat defaultne , CONFIGX DEFAULT ci nak tak , skusil bych je tam nak zapsat, bohuzel nevim jak se to v C18 zapisuje , skousel sem to ale hazi my to eror pri prekladu ze chybi nakej soubor c018i.o :confused:

EDIT: koukal se do Examplu a zapisovaly to tam nak takle

[code]#include <p18cxxx.h>
#include <delays.h>

#pragma config OSC = HS, OSCS = OFF
#pragma config PWRT = OFF
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config CCP2MUX = OFF
#pragma config LVP = OFF[/code]

Ještě prosím mrkni na CONFIG5H (boot code protect nebo tak nějak),
ale pak už nevím…

CONFIG5H Code protect book disabled

Když dám v programátoru Compare PIC with HEX-file tak to vyhodí

compare PIC with pic.hex :
– 234 errors in PROGRAM
– 0 errors in ID
– 0 errors in EEPROM
– 1 errors in CONFIG

Přitom program je podle kompileru ok.

A taky nevím, proč furt vyskakuje C018i.c a je jedno co je napsaný v zdrojáku.

skusal si stym programovat uz vobec nejaky pic ? mas vsetko dobre pripojene ?

Zkusil bych ten program napsat přímo v asm, jestli i pak bude programátor hlásit chyby, hledal bych problém v nastavení programátoru.

Možná že je chyba někde v kompilaci toho Céčka, já jsem se už setkal s případem, kdy mi kompilace proběhla v pořádku, ale po nahrání do uP to nefungovalo.

to je normalni , pokud se nejaka funkce vyskytuje mimo hlavni soubor otevre se novy okno s tou inctrukci , jedna se o inkludovane soubory …

bohuzel vic uz ti asi neporadim, v C18 nepisu a ten tvuj programator tady asi nikdo nema …

#include <p18f2331.h>
//#include <p18f452.h>
#define SpeedMhz 10000000
//#include <asdelays.h>
#include <delays.h>

#pragma config OSC = HS /* HSPLLSets the oscillator mode to XT for cristal up to 4MHz or HS=>4MHz /
//#pragma config WDT = OFF /
Turns the watchdog timer off /
#pragma config LVP = OFF /
Turns low voltage programming off /
//#pragma config DEBUG = ON /
Compiles without extra debug code /
#pragma config DEBUG = OFF /
Compiles without extra debug code */

void main()
{
TRISC=0b00000000;
while(1);
{
PORTC = 0b11111111;
Delay10TCYx(200);
PORTC = 0b00000000;
Delay10TCYx(200);
}
}

dam ti tu hex od toho…skus napalit…
test.hex (949 Bytes)

Právě že nezkoušel, teprve začínám.