Erste Versuche mit dem Entwicklungsboard MikroElektronika EasyPIC v7

Gast #2489671
Lesenswert?

Nachdem ich bereits die LED's der verschiedenen Ports ansprechen und 
verschiedene Spielereien anstellen kann, würde ich jetzt gerne die 
Taster verwenden.

Wer kann mir ein Beispiel geben, damit ich das Prinzip dahinter 
verstehe?

Wie kann ich zum Beispiel mit einem Taster von Port E die LED's des Port 
C ansprechen?

DANKE!!!
Gast #2490269
Lesenswert?

TRISC = 0x00;
TRISE = 0x07;

???

Die Fehlermeldungen:

9 406 ')' expected, but '.0' found
9 315 Invalid expression
9 402 ; expected, but ')'
11 424 '}' expected ';'
12 312 Internal error ''
0 102 Finished (with errors): 07 Jän 2012, 14:19:53
Gast #2490946
Lesenswert?

Kann mir bitte jemand in kurzen und einfachen Sätzen, die zwei 
if-Bedingungen aus der do-while-Schleife aus dem unten stehenden 
Quelltext erklären?
1
bit oldstate;                                    // Old state flag
2

3
void main() {
4

5
  ANSELB = 0;                                    // Configure PORTB pins as digital
6
  ANSELC = 0;                                    // Configure PORTC pins as digital
7

8
  TRISB0_bit = 1;                                // set RB0 pin as input
9
  
10
  TRISC = 0x00;                                  // Configure PORTC as output
11
  LATC = 0xAA;                                   // Initial PORTC value
12
  
13
  oldstate = 0;
14
  
15
  do {
16
    if (Button(&PORTB, 0, 1, 1)) {               // Detect logical one
17
      oldstate = 1;                              // Update flag
18
    }
19
    if (oldstate && Button(&PORTB, 0, 1, 0)) {   // Detect one-to-zero transition
20
      LATC = ~LATC;                              // Invert PORTC
21
      oldstate = 0;                              // Update flag
22
    }
23
  } while(1);                                    // Endless loop
24
}
Gast #2490968
Lesenswert?

if (Button(&PORTB, 0, 1, 1)) {
Wenn der Port B0 für 1ms high ist, wird
oldstate = 1;
auf 1 gesetzt.

if (oldstate && Button(&PORTB, 0, 1, 0)) {
Wenn der Port B0 auf low gesetzt wird für 1ms, dann wird
der rest ausgeführt. Also LED setzten.

Siehe dazu auch die Hilfe des Compilers. Da
steht es auch nochmal beschrieben.
Gast #2491001
Lesenswert?

Eine letzte Frage zu diesem Programm habe ich bitte noch:

Was hat folgende Code-Zeile für einen Sinn. Wenn ich diese 
auskommentiere, verändert sich überhaupt nichts!?
1
TRISB0_bit = 1;                                // set RB0 pin as input
Gast #2491030
Lesenswert?

Wenn man diesen µC startet, dann sind seine Ports
als Eingang geschaltet. Da man aber nicht immer weis,
wie die µC beim starten ihre Ports haben, setzt man sie
am Anfang eines Programm immer so wie man sie haben will.
Auch wenn es in diesm Falle nicht nötig ist. Deshalb immer
die Ports so setzen wie man sie braucht dann kann auch nix schief
gehen. Besonders wenn man es auf einen anderen µC laufen
lassen will, bekäme man dann schwierigkeiten mit dem Programm.
Da können die Ports plötzlich als Ausgang definiert beim Starten sein.

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