Sida 2 av 2

Postat: 12 juli 2008, 09:49:13
av bearing
Vilken debugger?

Om du menar simulatorn så går det.

Step into - kör den instruktion som just är markerad, stannar efteråt
Step over - som ovan fast om aktuell instruktion är ett funktionsanrop körs funktionen och stannar efter return
Step out - Kör koden och stannar efter nästa return
Run - kör kontinuerligt eller stannar vid brytpunkt

Postat: 12 juli 2008, 11:07:19
av persika
jo, det du (bearing) nämner känner jag väl till o har använt många ggr för vanlig kod.

Postat: 12 juli 2008, 11:54:47
av bearing
Simulatorn funkar även för interrupt. Om du vill simulera externa interrupt kan du använda dig av Stimulus under Debugger-menyn. Står i hjälpen hur den används. För seriekommunikation verkar det lämpligt att skapa en vågform som ser ut som den verkliga mot serieingången.

Men, din fråga gällde alltså någon hårdvarukopplad debugger, eller?

Postat: 12 juli 2008, 12:16:02
av persika
Jag menade debuggern som finns i MPLAB (kanske kallas simulator?).

Jag kollade lite snabbt nu på stimulus där. Nytt för mig...
Vad jag förstår så kan man få register påverkade efter vissa tider som man fyller i i tabellen där. Då skulle man kunna fylla i där så det motsvarar seriell-data som kommer in på pinnen.

Är det möjligt att göra det omvända oxå, "spela in" vad som händer på en utgångspinne under tiden programmet körs ?

Postat: 12 juli 2008, 12:35:32
av sodjan
> Jag menade debuggern som finns i MPLAB (kanske kallas simulator?).

Eftersom den faktiskt heter MPSIM så kanske det ju enklast att kalla den för "simulatorn"... :-)

Debugga behöver man inte göra om inte simuleringen går fel, annars finns
det ju inga "buggar" att "debugga"... :-)

För att simulera ett interrupt (och för att testa att ISR'en fungerar) så kan
du alltid manuellt sätta lämplig xxIF flagga. Du kan även manuellt ladda
t.ex RXREG i USART'en med lämpligt värde/tecken innan (eventuellt sätts
RXIF automatiskt då, det vet jag inte). Jag tror inte att du behöver köra
stimulus för det, om man inte har mer komplexa indata.

> ..."spela in" vad som händer på en utgångspinne under tiden programmet körs ?

Ger inte "Trace", "Watch" eller "Logic Analyzer" det du behöver ?

Postat: 12 juli 2008, 12:41:37
av bearing
MPLAB SIM heter den. (Det här skrev jag till persika, den kanske heter MPSIM, MPLAB SIM står det i menyn)

Jo, det var så jag menade.

View -> Simulator Logic Analyzer

Tillägg: Det kan väl vara bra med en stimulus till usarten för att se om man lagt rätt värden i baud-registret samt att se om programmet hinner med att behandla datan.

Postat: 12 juli 2008, 13:16:03
av persika
MPSIM, då, det är ju bra att vara överens om vad det heter, så man vet vad man samtalar om.

> Ger inte "Trace", "Watch" eller "Logic Analyzer" det du behöver ?
Jag ska kolla mer på det...

USART, det finns det ingen i 12F675, 16F676, så jag använder timer0 till att ge interrupt 4ggr/ seriell-bit

Postat: 12 juli 2008, 14:00:07
av bearing
Så gjorde jag också, fast med bara en sampling per bit. Använde externt interrupt på första flanken (startbiten), väntade sedan 1,5 bit-period, därefter 1 period/bit.

Postat: 12 juli 2008, 14:20:27
av AndersG
Visst gåt det att stega. Tajmingen blir helt annorlunda, men du kan testa koden. Testa köra den i MPSIM, sätt en breakpoint i början av din ISR och trigga den sedan med "stimuli"