"Target not auto-detected", fast det just fungerat
OK. *Så* djupt är det inte om man bara vet var man ska sätta fötterna... 
Vi kan titta på ett exempel. Detta är en del av HEX filen till en 16F886.
Den har också konfig-registren på h'2007' och h'2008'.
Eftersom detta är *ord* adresser, och HEX filen använder *byte* adresser,
så får vi dubbla dom och får då h'400E' och h'4010'. Det är alltså dessa
adresser vi ska leta efter. En bit ner i HEX filen står det :Notera där det står ":02400E...." och ":024010..." !!
Config orden är det som kommer efter adresserna (och efter ett par extra '00'), alltså h'E420' samt h'FF3E'.
Dessa kan man sedan "mappa" mot beskrivningen i databladet så kan man se hur det är satt.
Det bör i princip se likadant ut i din HEX-fil till F88'an, fast sannolikt med andra värden så klart.

Vi kan titta på ett exempel. Detta är en del av HEX filen till en 16F886.
Den har också konfig-registren på h'2007' och h'2008'.
Eftersom detta är *ord* adresser, och HEX filen använder *byte* adresser,
så får vi dubbla dom och får då h'400E' och h'4010'. Det är alltså dessa
adresser vi ska leta efter. En bit ner i HEX filen står det :
Kod: Markera allt
:0800B00053285A280000080043
:02400E00E420AC
:02401000FF3E71
:00000001FF
Config orden är det som kommer efter adresserna (och efter ett par extra '00'), alltså h'E420' samt h'FF3E'.
Dessa kan man sedan "mappa" mot beskrivningen i databladet så kan man se hur det är satt.
Det bör i princip se likadant ut i din HEX-fil till F88'an, fast sannolikt med andra värden så klart.
Det står följande i (slutet av) hexfilen:
Vilket då alltså ger 0x703F, så vitt jag förstår. Skall jag alltså läsa detta som binärt, för att jämföra med databladet? Men config1 är ju 14 bitar, och 0x703F ger ju ett 15-bit tal! Jag hänger inte riktigt med nu. Ibland känner man sig inte särskilt smart... Men man lär sig ju så länge man lever!
Kod: Markera allt
:0C014000A228F50B9F28A428000008004E
:02400E00703F01
:00000001FF
Om vi för tillfället glömmer HEX filen...
Jag provade att skapa ett F88 projekt med *din* __CONFIG rad (som den
var inklippt i ditt inlägg), och jag vill bara fråga, fick du verkligen *INGA*
felmeddelanden alls ????
EDIT:
Icecap har helt rätt i att man ska kasta om de två byte'en.
För övrigt ser det OK ut, efter att ha rättat en del fel i din CONFIG rad
(vilka MPASM snällt talade om var de fanns)
Jag provade att skapa ett F88 projekt med *din* __CONFIG rad (som den
var inklippt i ditt inlägg), och jag vill bara fråga, fick du verkligen *INGA*
felmeddelanden alls ????
EDIT:
Icecap har helt rätt i att man ska kasta om de två byte'en.
För övrigt ser det OK ut, efter att ha rättat en del fel i din CONFIG rad
(vilka MPASM snällt talade om var de fanns)
Senast redigerad av sodjan 24 juli 2007, 23:58:48, redigerad totalt 1 gång.
Kommer att bli arkebuserad i gryningen för det här, men... Jag skrev av config-raden, eftersom datorn som programmet låg på inte hade internetuppkoppling. När jag kollar nu så ser jag att det felaktigt står _CCP_RB0 istället för _CCP1_RB0. Ber tusen gånger om hundra ursäkt för detta...
Har för närvarande ingen direkt aning om hur jag skall fortsätta felsökandet (annat än att testa kretsen jag beställt av sodjan, för Intern-MCLR. Verkar ju dock inte vara det problemet, men det är värt ett försök, när jag fått den.
Ska sitta och pula lite till, och sen sova på saken. Kanske dyker det upp något, kanske inte.
Har för närvarande ingen direkt aning om hur jag skall fortsätta felsökandet (annat än att testa kretsen jag beställt av sodjan, för Intern-MCLR. Verkar ju dock inte vara det problemet, men det är värt ett försök, när jag fått den.
Ska sitta och pula lite till, och sen sova på saken. Kanske dyker det upp något, kanske inte.
Var lite otydlig, det stod rätt i programmet (_CCP1_RB0), felaktigheten fanns endast här på forumet. Dessutom såg jag nu att det var ett mellanslag, så att det stod '__ config' istället för '__config'. Rättade de två felen och la in raden i ett tomt project enligt nedan, och det fungerar, utan felmeddelanden.
Har fixat internetanslutning till datorn jag programmerar på, så nu kan jag klippa och klistra kod direkt.
Kod: Markera allt
LIST p=16f88
include "p16f88.inc"
__config _CONFIG1, _CP_OFF & _DEBUG_OFF & _INTRC_IO & _LVP_OFF & _CCP1_RB0 & _WDT_OFF & _PWRTE_ON
nop
Loop
nop
goto Loop
end
> och det fungerar, utan felmeddelanden.
Ja nu ja.
Men v.v. svara på frågan jag ställde.
EDIT:
Eller vänta, du menar kanske att mellanslaget i "__ config" inte *heller* fanns
med i din "riktiga" kod ? Bara här på forumet ? Det var därför som det blev en
del extra pyssel för mig när jag skulle testa det. Och det gör dessutom
dina problem än konstigare. Om du vill så testar jag gärna med din kod/hex fil
här hos mig med en F88's...
Ja nu ja.
Men v.v. svara på frågan jag ställde.
EDIT:
Eller vänta, du menar kanske att mellanslaget i "__ config" inte *heller* fanns
med i din "riktiga" kod ? Bara här på forumet ? Det var därför som det blev en
del extra pyssel för mig när jag skulle testa det. Och det gör dessutom
dina problem än konstigare. Om du vill så testar jag gärna med din kod/hex fil
här hos mig med en F88's...
När jag kompilerar programmet (det program som orsakat problem, alltså) så får jag 9 meddelanden om att "Register in operand not in bank 0". Kollade upp dessa, och alla har rätt banksel. Finns en andra asm-fil i projektet som genererar 6 meddelanden av samma typ, och dessa har jag också kollat att har rätt banksel (projektet innehåller totalt 2 asm-filer, samt 16F88.lkr). MPLINK rapporterar heller inga fel. Hoppas detta är svar nog...