Sida 1 av 1

Hur göra när MPLAB SIM inte stöder weak pull-ups? *LÖST*

Postat: 1 september 2008, 00:52:57
av korp
Jag håller på med ett projekt som bl a innefattar momentanbrytare till vardera RB6 och RB7 individuellt på en PIC16F886. RB6 och RB7 initieras med interna "weak pull-ups", och de triggar olika saker i programmet med "interrupt on change".

Jag höll på och debugga i MPLAB SIM och efter att ha fått ett skumt beteende där programmet vägrar reagera på stimulus på RB6 och RB7 (Pulse Low) kollade jag i hjälpen för MPLAB SIM. Under General Limitations står det bl a Weak pull-ups on ports not implemented..

Ber om ursäkt om det är uppenbart, men hur simulerar jag bäst min stimuli?

Jag antar att man kan ändra i koden så att den vid simulering inte har weak pull-ups, och jag kör Pulse High-stimuli, och sedan ändrar till att använda weak pull-ups vid programmeringen, men det känns himla bökigt att göra så.

Postat: 1 september 2008, 00:55:54
av sodjan
Det är ingen skillnad på att använda WPU mot att lägga pinnen "hög" utifrån.

Postat: 1 september 2008, 02:04:55
av korp
Aha, så om jag skapar stimuli som sätter RB6 och RB7 höga tidigt i simuleringen så blir det samma resultat... Får kolla lite närmre på MPLAB SIM, för jag känner på mig att detta går att ordna per automatik utan att jag behöver göra det manuellt :) Tack Sodjan!

Edit: Ah! "Pin / Register Actions"! Tusan vad käckt. Detta får kollas närmare på.
Edit2: Imorgon. Bäst att sova några timmar innan lillgrabben vaknar och ska ha välling.

Postat: 1 september 2008, 10:23:18
av sodjan
Ja, när du slår på WPU så är det i princip samma sak som att
lägga ett extern motstånd (pullup-motstånd) till "hög".

Postat: 1 september 2008, 13:21:23
av korp
Ja det låter ju faktiskt självklart nu när jag läser det i morgon.. eh.. middagssolens sken. Hittade ett par buggar i programmet när detta fungerade. Sov gott efter det :D