Unterschied zwischen Port und Latch

Gast #3731171
Lesenswert?

Hallo,

ich habe eine Verständnisfrage zu dem Unterschied zwischen Port und 
Latch bei I/O-Pins. Habe mir ein kleines Board mit einem PIC32 erstellt 
und wollte um zu Testen, ob das Programmieren funktioniert, einfach mal 
zwei LEDs abwechselnd blinken lassen. Was mir dabei aufgefallen ist: 
Spreche ich die LEDs über das Latch-Register an, blinken beide LEDs wie 
gewünscht abwechselnd. Probiere ich das gleiche über Port, blinkt nur 
die rote LED, die Grüne bleibt ausgeschaltet. Habe vorher einen dsPIC33 
genutzt und konnte dort eigentlich zum Schreiben von Ausgängen immer 
"PORT" nutzen. Velleicht hat ja jemand eine Idee woran das liegen 
könnte, da ich momentan ehrlich gesagt ziemlich ratlos bin..
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <plib.h>
4

5
#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_4, FPLLODIV = DIV_2, FWDTEN = OFF
6
#pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_1
7
#define SYS_FREQ (50000000L)
8

9
int main(int argc, char** argv) {
10

11
    TRISBbits.TRISB10 = 0;          //LED1 (green)
12
    TRISBbits.TRISB11 = 1;          //LED2 (red)
13

14
    int i = 0;
15

16
    while(1){
17

18
        LATBbits.LATB10 = 1;
19
        LATBbits.LATB11 = 0;
20

21
        for(i=0; i<200000; i++) {   //Warteschleife
22
        }
23
        i=0;
24

25
        LATBbits.LATB10 = 0;
26
        LATBbits.LATB11 = 1;
27

28
        for(i=0; i<200000; i++) {    
29
        }
30
        i=0;
31
    }
32

33
    return (EXIT_SUCCESS);
34
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren