Taster mit Pull up Widerstand

OP #6338223
Lesenswert?
• ▲
▼
Moin Leute,

ich brauch mal eure Hilfe bitte.

Ich nutze das Board STM32F091. Ich hab ein LED 2 und ein Taster an PC13 
mit einem Pull-Up Widerstand (laut Datenblatt).

Ich möchte nun, dass die LED 2 leuchtet und wenn ich den Taster drücke, 
dass die LED 2 nicht mehr leuchtet.

Den Versuch, dass die LED 2 leuchtet wenn ich des Taster drücke klappt 
wunderbar. Hier ist mein Code.
1
#include "stm32f0xx.h"      // Device Header
2

3

4
int main(void)
5
{
6
   RCC->AHBENR |= 0x80000;  // enable GPIOC clock Bit 19 GPIOC
7
   RCC->AHBENR |= 0x20000;  // enable GPIOA clock Bit 17 GPIOA
8
  
9
  GPIOA->MODER |= 0x400;  // 0b 0000 0000 0000 0000 0000 0100 0000 0000 = Pin 5
10

11
   while(1)
12
   {
13
     if(GPIOC->IDR & 0x2000) // if PC13 is high
14
     {
15
       GPIOA->BSRR = 0x0020000;  // set PA5 low, LED OFF
16
     }
17
     else
18
     {
19
       GPIOA->BSRR = 0x20; // Set PA5 high, 0b 0010 0000, high, LED ON 
20

21
      }
22
    
23
    }
24
}
Wie gesagt, dass klappt. Nun möchte ich es einfach umgekehrt haben also 
das die LED ausgeht, wenn ich den Taster drücke. Ich hab die GPIO->BSRR 
= 0x0020000 und GPIOA->BSRR = 0x20 vertauscht. Eigentliche müsste das 
doch funktionieren. Also der Pin PC13 ist auf high wenn ich den Taster 
nicht drücke (Pull-Up-Widerstand) wenn das der Fall ist, dann LED->ON 
und wenn ich den Taster drücke, dann ziehe ich den Pin PC13 auf GND und 
die LED-> OFF.

Aber das passiert nicht. Die LED ist zwar ON aber wenn ich den Taster 
drücke dann passiert da nichts. Kann mir da jemand bitte helfen?
OP #6338237
Lesenswert?
• ▲
▼
Richard W. schrieb:
> Johannes O. schrieb:
>> Richard W. schrieb:
>>> GPIOA->BSRR = 0x0020000;  // set PA5 low, LED OFF
>>>        GPIOA->BSRR = 0x20; // Set PA5 high, 0b 0010 0000, high, LED ON
>>
>> Hier stimmt was nicht. Oben hast du nur 0x0020000 anstatt vermutlich
>> 0x00200000. (7 nibbles anstatt 8)
>> Kann das sein?
>
> Ja, dass stimmt. Ich meine natürlich 0x00200000.

Ach misst. Hab im Code eine Null weggelassen. Es klappt jetzt. Danke für 
die Hilfe.

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.