Sida 1 av 1

Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 1 mars 2012, 23:44:22
av emil.s
Håller på att experimentera lite mer, och tänkte försöka mig på att koppla en brytare till min PIC.

Har kikat lite på denna:
http://www.mcuexamples.com/push-buttons ... th-PIC.php

Har kopprat en pull-down resistor till RB4.

Koden ser ut så här:

Kod: Markera allt

void main (void)
{
    /*Sätter RB3 till output, RB4 till input*/
    TRISBbits.TRISB3 = 0;
    TRISBbits.TRISB4 = 1;

while (1)
{
    LATBbits.LATB3 = 0;
    if (PORTBbits.RB4 == 1)
    {
        Delay100TCYx(100);
        LATBbits.LATB3 = 1;
        Delay100TCYx(100);
    }
    else
    {
        Delay100TCYx(25);
        LATBbits.LATB3 = 1;
        Delay100TCYx(25);
    }

}

}
Såg att nåt exempel använde LATB för läsning av porten?
Som jag fattat det är LAT registren för skrivning, och PORT vilket läge porten har?

Eftersom jag satt en pull-down så är ju RB4 låg (0), men blir ju hög (1) när jag spänningsätter pinnen?

Hur som så funkar det inte. Dioden blinkar fort... Trots att jag mäter 0v mellan RB4 och GND.
Och sätter jag ström på pinnen så händer inget heller.

Vad har jag missat?

Re: Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 1 mars 2012, 23:48:03
av sodjan
> Vad har jag missat?

Att ange lite grundläggade saker som processor modell o.s.v.

> Såg att nåt exempel använde LATB för läsning av porten?

Man kan läsa LATx, men då läser man just LATx registret, inte porten (I/O pinnarna).

> Som jag fattat det är LAT registren för skrivning, och PORT vilket läge porten har?

Ja, ungefär.

> Eftersom jag satt en pull-down så är ju RB4 låg (0), men blir ju hög (1) när jag spänningsätter pinnen?

Ja, när du sätter pinnen hög. "Spänningssätter" är inget bra uttryck.

Re: Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 1 mars 2012, 23:52:53
av emil.s

Re: Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 2 mars 2012, 00:06:04
av sodjan
OK, den har analog funktion på RB4 som default.

> Vad har jag missat?

Du har inte gjort hemläxan... :-) RTFM, kapitlet om "I/O-ports".

Och *speciellt* den lilla grå rutan märkt med "Note:" i fet stil
på sidan 90 i databladet som du länkade till.

Databladen skrivs av en anledning och pekar man speciellt ut
något med en grå ruta och fet stil så betyder det "viktigt!". :-)
Och man läser det extra noga och ser till att man förstår det.
Om man inte förstår det som står där så frågar man om *det*.

Re: Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 2 mars 2012, 00:26:20
av emil.s
Uppenbarligen kan man inte läsa för mycket datablad... :oops:
Speciellt inte på rätt ställe, för det där partiet har man ju bläddrat genom flertalet gånger...
PCFG6: skrev:0 = Pin configured as an analog channel - digital input disabled and reads ‘0’
Förklarade ju det långsamma blinkadet också såklart.

Tack! :)

Re: Koppla brytare till PIC. Händer inget... (kodproblem?)

Postat: 2 mars 2012, 00:27:28
av sodjan
En av de 3-4 klart vanligaste missarna... :-)