Problem EXOR-Verknüpfung beim PIC (MPLAB + HI-Tech-Compiler)

OP #2150605
Lesenswert?
• ▲
▼
Hallo Forengemeinde,

ich habe mich jetzt mal an den PICs (PIC16F648A) versucht und scheitere 
jetzt an einer einfachen EXOR-Verknüpfung.
Ich habe ein LED an Port A1 über einen Vorwiderstand an Masse. Der PIC 
läuft über den internen Oszillator. Normalerweise sollte die LED doch so 
blinken, tut sie aber nicht. Sie geht nur an und bleibt an.
Warum ist das so?
Setze und lösche ich den Port A1 mit 2 Befehlen funktioniert es.
Kennt der HI-TECH-Compiler in der freien LITE-Version kein EXOR?
Hier mal der Code:
1
#include <htc.h>
2

3
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_ON & BOREN_ON & LVP_ON & CPD_OFF & CP_OFF);
4

5
#define _XTAL_FREQ 48000
6

7
void main(void)
8
{
9
   OSCF = 0;                // Internal Oscillator = 48kHz
10
   TRISA = 0x00;            // PortA = output
11

12
   PORTA = 0x00;            // PORTA = aus
13
  
14
   while(1)
15
   {
16
      PORTA ^= 0x02;        // toggel LED
17
      __delay_ms(500);
18
   }
19
}
Gast #2150837
Lesenswert?
• ▲
▼
PORTA ^= 0x02;
ist eine Kurzversion von:
PORTA = PORTA ^ 0x02;

Es wird also erst mal von PORTA gelesen. Da hast Du ja den 
entsprechenden Pin "über einen Vorwiderstand an Masse" gelegt. Es wird 
wohl für das interessante Bit immer eine 0 gelesen.
Gast #2151548
Lesenswert?
• ▲
▼
Glaub mir, ich bin da auch zuerst reingefallen. Aber das vergisst du 
jetzt nie wieder ;-)

Auch wenn mensch vielleicht intuitiv erwarten würde, dass der Komparator 
standardmäßig aus ist.. Steht aber alles im Datenblatt.

Gruß
Jens

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.