Fråga rörande stimulus

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
MrIzoard
Inlägg: 339
Blev medlem: 25 september 2011, 15:33:08
Ort: Göteborg

Fråga rörande stimulus

Inlägg av MrIzoard »

Hej!

Jag tänkte att det var dags att prova på att använda stimulus för att prova att simulera ingångar så jag slängde ihop en liten snurra, dock får jag det inte att fungera som tänkt....

Jag är under första fliken i Stimulus dialogen (Asynch) och har där två rader, en för PIN/SFR RA3 med Action Toggle och en för PIN/SFR RA4 med Action Toggle.
När jag väljer att köra "fire" på RA3 så ser jag att PORTA ändrar värde till 0x08 vilket är förväntat, en "fire" till och den går till 0x00 vilket också är förväntat.
Däremot när jag kör "fire" på RA4 så händer det ingenting med PORTA.
Jag har provat att ändra Action till Set High för RA4 men ingen skillnad på PORTA och jag har även provat att ta bort RA3 så att den raden inte stör på något sätt men ej heller då någon förändring.

Jag stegar alltså programmet framåt steg för steg för att få min "fire" att slå så det är inte det :)

Min inställning av TRISA är följande:

Kod: Markera allt

        banksel    TRISA           ; Gör det möjligt att ställa in TRISA
        movlw      b'00011000'     ; RA3 och RA4 = ingång, övriga RA = utgångar
        movwf      TRISA
Sedan kommer det lite annat i programmet men jag tror inte det spelar någon roll för min tankevurpa är nog i något annat fundamentalt.

M.v.h.
Ulf L.
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fråga rörande stimulus

Inlägg av Icecap »

Ett snabbt tips: ange vilket program du använder, det är inte många tankeläsare här...
MrIzoard
Inlägg: 339
Blev medlem: 25 september 2011, 15:33:08
Ort: Göteborg

Re: Fråga rörande stimulus

Inlägg av MrIzoard »

MPLAB IDE v8.80 och MPLAB SIM
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Fråga rörande stimulus

Inlägg av Swech »

Du kommer troligtvis att få fler svar som inte leder någon vart eftersom
du inte har skickat med tillräckligt med info.
Om du läst samma inlägg från någon annan skulle du nog undra bl.a.
vilken processor det rör sig om.
Hur ser hela programmet ut, inte bara 3 rader du misstänker är fel.

Så. nya friska tag. Skriv mer info om vad och hur du testat så lossnar det säkert
Swech
MrIzoard
Inlägg: 339
Blev medlem: 25 september 2011, 15:33:08
Ort: Göteborg

Re: Fråga rörande stimulus

Inlägg av MrIzoard »

Ja det var kanske lite snålt med information.

Då fyller vi på med att det är en PIC 16F690.

Koden ser ut så här för tillfället:

Kod: Markera allt

  list      p=16f690
#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

my_code     code h'0000'

Start:
        banksel    TRISA           ; Gör det möjligt att ställa in TRISA
        movlw      b'00011000'     ; RA3 och RA4 = ingång, övriga RA = utgångar
        movwf      TRISA
        banksel    TRISB           ; Gör det möjligt att ställa in TRISB
        clrf	    TRISB           ; RB är bara utgångar
        banksel    PORTA

        movlw		0x00
        movwf		PORTA
        movwf		PORTB
Loop:
        bcf			PORTB,3
        btfss       PORTA,3
        bsf			PORTB,3

        bcf			PORTB,4
        btfss       PORTA,4
        bsf			PORTB,4
        goto        Loop

     end
Koden är lite misshandlad efter många försök nu....

Sedan har jag slängt ut Watch-fönstret och kollar i det på värdet för PORTA och även PORTB.
I PORTA så kan jag som sagt se när jag får RA3 att fungera som tänkt (dock får jag inte PORTB att anta rätt värde), men RA4 klarar jag inte förändra med vare sig Toggle eller Set High.
JustNeed
Inlägg: 799
Blev medlem: 7 november 2007, 22:07:01
Ort: 08

Re: Fråga rörande stimulus

Inlägg av JustNeed »

RA4 är förmodligen analog på default. Du måste stänga av analogfunktionen för att kunna använda den som (Edit för ordmärkare) binär ingång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fråga rörande stimulus

Inlägg av sodjan »

JustNeed har med största sannolikhet helt rätt. Notera att MPSIM så långt
det går försöker efterlika hur den *riktiga* kretsen skulle ha reagerat på
samma kod och samma insignaler. Och då stämmer ju allt. Även
"watch" fönstret följer hur en riktigt krets skulle fungera.

Om du bara läeger till "clrf ansel" och "clrf anselh" så får du se...

Och, gör det gärna till en vana att läsa på ordentligt kring just de
delar som du tänker använda. Allt det som behövs för att undvika det
du ser finns tydligt angivet i kapitel "4.0 I/O PORTS" i databladet. Både
i själva texten, i den lilla grå rutan med "Note:" samt i exempelkoden.
Samt i stycket "4.2.1 ANSEL AND ANSELH REGISTERS" på sidan efter.

En sak är jag lite konfunderad över. Säger du att du såg ändringar på RA3
samtidigt som du körde med "_MCLRE_ON" ? RA3 borde vara bortkopplad
då du kör med extern MCLR...
MrIzoard
Inlägg: 339
Blev medlem: 25 september 2011, 15:33:08
Ort: Göteborg

Re: Fråga rörande stimulus

Inlägg av MrIzoard »

Ja det är ju andra gången man gör bort sig med att missa att nolla ANSEL och ANSELH, nåväl repitition är väl inlärningens moder så förhoppningsvis var det min sista miss med det.

Skall även kolla upp MCLR'en när jag kommer hem.

Tack för tipsen!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fråga rörande stimulus

Inlägg av sodjan »

Ja, efter ett par program så är det ju mer och mer ovanligt
att man skriver ett nytt program helt från ingenting. Vanligtsvis
tar man ett tidigare program och då är ju allt detta redan "på plats".
Skriv svar