Ik heb in MPLAB IDE 6.10 een nieuw project aangemaakt en daarin een bestaand stuk assembler code geladen. Afgaand op de kleurweergave van de code, worden de getallen in onderstaand stukje als "BAD" weergegeven.


DITPDL      EQU  00H     ; IN  DIT Paddle                
DAHPDL      EQU  01H     ; IN  DAH Paddle                
PB          EQU  03H     ; IN  Message/Config Push Button

Maak ik er dit van:


DITPDL      EQU  0x00     ; IN  DIT Paddle                
DAHPDL      EQU  0x01     ; IN  DAH Paddle                
PB          EQU  0x03     ; IN  Message/Config Push Button

dan worden de getallen in de corresponderende kleur voor hex-getal weergegeven.

Kan iemand mij vertellen of de weergave van een getal met de toevoeging 'h' voor HEX wellicht niet is toegestaan in de ontwikkelomgeving van MPLAB of is het misschien ergens instelbaar. Ik heb dat in ieder geval (nog) niet kunnen vinden. Een voorgaande versie van MPLAB heb ik niet, dus een vergelijk kan ik niet maken.

Carel.

de toevoeging 'h' is in de voorgaande versie wel toegestaan
maar moet dit niet een kleine letter zijn ipv hoofd letter?

H of h moet gewoon werken. Je kunt het simpel testen door te assembleren.

Ja, ja Bastiaan. Ik ben zojuist gestart om de code van de morsekeyer om te zetten van de oorspronkelijke 12C509 naar de 12F629. Het zal dus nog even duren voor ik zover ben.
Maar een "politie projectje" als experiment kan natuurlijk altijd. 'h' of 'H' maakt niets uit, het effect in MPLAB is identiek.

Inmiddels ben ik zover dat de gemigreerde code begint te werken. Aan GP3 hangt een drukknop naar massa t.b.v. omschakeling naar 'commando-mode' van het programma. Om een voor mij nog onbekende reden werkt die drukknop niet.

Ik wil nu met MPLAB SIM de code debuggen en krijg het meeste wel werkend maar ik kan nergens ontdekken hoe ik stapsgewijs door de code kan lopen om daarmee de registers enz. te observeren. Een 'build' opdracht werkt zonder fouten, maar dan??

Allé heren PIC-fanaten. Is er niemand die mij kan vertelllen hoe ik een ASM file kan debuggen met MPLAB SIM?

Project->Open
Werkbalk->Make (of Build All)
Werkbalk->Run (ASM file geopend met groene pijl in de linker kolom op de eerste instructie na ORG 0)

en dan? Hoe ga ik stap-voor-stap door de sourcecode om de diverse registers etc. te monitoren?

(Nou vooruit dan maar, ik ben ff van de PIC's af, maar omdat niemand je helpt doe ik het dan wel ff.)

Met F7 kun je regel voor regel steppen zodat je alles kunt volgen.

Met window->Watch Windows->New Watch Window, kun je kiezen van welke variabelen je de waarde bij wilt houden. Deze komen dan in een apart (watch) windows. Wil je later wat toevoegen of verwijderen aan dat window dan doe je dat door te kiezen voor: Window->Watch Windows->Edit Active Watch

Ook staat in de Windows lijst, je stack en Special Functiom Register, enz. wat je ook apart als window kan laten verschijnene zodat je de data kunt volgen.

Als je nu hem wilt laten steppen alleen dan niet alles maar een stuk dan kun je break points zetten, door rechtermuisknop op de regel die je wilt en dan Break point. Als je dan gaat runnen via F9 dan runt die net zolang totdat die die rode regel tegenkomt. Vanaf dat punt kun je dan weer apart steppen met F7

Dank je Bastiaan. De F7 toets werkte eerst niet dus ging ik op zoek naar andere opties. Het lijkt nu wel te gaan hoewel hij eindeloos van de eerste regel naar de tweede springt en weer terug.


    BSF    STATUS, RP0   ; Bank 1
    CALL   0x3FF         ; Get the cal value
    MOVWF  OSCCAL        ; Load Internal Oscillator  TRIM Value
    BCF    STATUS, RP0   ; Bank 0

    GOTO   INIT
..
..
INIT
    movlw	0x07
    movwf	CMCON

enz.

Als ik een breakpoint zet op de eerste instructie na het INIT label en vervolgens op F9 druk, dan moet hij toch tot daar runnen en dat groene pijltje (in de grijze kolom) op de bewuste regel plaatsen, of zie ik het verkeerd, want dat doet de debugger niet.

edit: IK HEB HET AL GEVONDEN.
Natuurlijk kan de debugger geen kalibratie bits ophalen uit de PIC. Die bestaand hier niet!!! (Oepsss)
Hij gaat nu wel verder.

[Bericht gewijzigd door Carel M. op ]

Ik heb nog even wat extra info nodig.
Gisterenavond werkte de simulatie prima en kon ik door de sourcecode stappen met de F7 toest. Zojuist heb ik een nieuw project gemaakt met een andere versie van de code en om de een of andere reden verschijnt er nu steeds het 'Program Memory:1' windows als ik de F7 toets indruk en gaat het debuggen in dat window aan de gang. Ik krijg het niet meer zo ingesteld dat tijdens het tracen de originele broncode(die veel beter leesbaar is) wordt doorlopen. Waar staat de instelling om dat te wijzigen. Ik heb geen andere handelingen gedaan bij het maken van dit nieuwe project dan dat ik gisterenavond bij het vorige project gedaan heb.

Heeft iemand een hint?

Er word in allebij de codes gestept. Dus als het gewone code venster nog actief is kun je daar ook gewoon de zaken volgen.

Op 15 februari 2003 15:10:05 schreef Bastiaan:
Er word in allebij de codes gestept. Dus als het gewone code venster nog actief is kun je daar ook gewoon de zaken volgen.

Ik begrijp niet waarom Bastiaan, maar hier blijft het (witte) 'Program Memory' venster bij iedere druk op de F7 toets als 'Allways-on-top' naar boven komen. Door het originele broncode venster wordt niet gestapt.

Even een kleine schop omhoog.
Sorry voor het ongemak maar ik wil toch verder en ondanks herhaalde pogingen om een nieuw project op te zetten blijft het 'Program Memory' venster steeds opkomen (zie bovenstaande uitleg vanaf 15-02-2003). Sluiten van het venster en opnieuw F7 (step) indrukken laat een nieuw 'Program Memory:1' venster opkomen enz. MPLAB blijfft doornummeren (Memory:2, Memory:3)
In de help-files heb ik nog geen oplossing kunnen vinden en debuggen in een venster met alleen maar instructies en een HEX getal er achter kan ik (nog) niet volgen.

Wie-oh-wie weet hier antwoord op?

Ik had een zelfde soort probleem met MPLAB 6.10
ik deed altijd een debug met animate en deze optie is niet aanwezig in 6.10
dus ik werk nog met 5.xx

Op 16 februari 2003 13:34:44 schreef k.p.meinesz:
... een debug met animate...

Dank je voor de tip. Wat is dat voor mode? Ik wil de GP3 poort (ingang) testen omdat hij niet werkt als ik de HEX file in de PIC schiet. Aan deze poort hangt een drukknop naar massa, die het programma moet triggeren om uit de 'service' loop te komen om een instructie van de gebruiker af te wachten die via GP0 en GP1 moet worden aangeboden. In de software-versie voor de 16F84A en de oorspronkelijke 12C509 is deze ingang voorzien van een interne weak pull-up, maar de 12F629 heeft dat alléén voor deze poort niét. Ik moet dus iets anders verzinnen om het te laten werken. Een externe R doet het (nog) niet en omdat meten (debuggen) nog steeds weten is, zoek ik gestaag verder.

Hoe ik de GPIO poorten handmatig kan beïnvloeden in MPLAB moet ik ook nog uitzoeken. Nog veel te leren dus.

heb je de oudere versie van MPLAB daarin zit deze optie
de nieuwe heeft deze optie niet

Ik heb ook een versie 5.30 maar niet geïnstalleerd. Kunnen die naast elkaar werken want dat is nog een 16-bitter of moet ik 6.10 eraf halen.

Op 16 februari 2003 16:16:32 schreef Carel M.:
Ik heb ook een versie 5.30 maar niet geïnstalleerd. Kunnen die naast elkaar werken want dat is nog een 16-bitter of moet ik 6.10 eraf halen.

ik had ze bijde op de schijf staan maar 6.10 beviel niet dus die is er weer af
als je ze bijde instaleerd wel ff opletten dat ze verschilende directories gebruiken ander kun je de kans lopen dat bij deinstallatie ook je projecten weg zijn

Ik heb zojuist 5.3 geïnstalleerd Klaas Pieter, maar die versie kent de 12F629 niet waarmee ik bezig ben. Helaas.

Op 16 februari 2003 17:19:11 schreef Carel M.:
Ik heb zojuist 5.3 geïnstalleerd Klaas Pieter, maar die versie kent de 12F629 niet waarmee ik bezig ben. Helaas.

Ik gebruik versie 5.70.00 daarin word hij wel ondersteund
zal eens kijken of ik nog een install versie heb liggen dan zet ik hem wel ff online
edit:
Ik heb hem nog is ongeveer 13.7mb dus upload kan ff duren
edit:
mplab 5.70

Ik heb hem opgehaald. Hartelijk dank.

Carel.