Forum: Mikrocontroller und Digitale Elektronik ARM cortex m3 , es geht immer nur ein LED an (GPIO set bit)


von cell85 (Gast)


Lesenswert?

Hi,

ich verstehe nicht wieso auf meinem Board nicht zwei LED's gleichzeitig 
leuchten können. Sobald ich eine LED aktiviere kann ich die zweite nicht 
aktivieren.

mein Code:

/* main.c - 02.12.2011 - Firmware V1.00 */

#include <stm32f10x_lib.h>
#include <stdio.h>
#include "setup.h"


extern volatile unsigned char  Clock1s;
extern volatile unsigned char  Clock100ms;
extern volatile unsigned long  TimeTick;

void Delay (unsigned long tick)
{
    unsigned long timetick;

    timetick = TimeTick;
    while ((TimeTick - timetick) < tick);
}


int main (void)
{

    SetupClock();
    SetupLED  ();


    GPIO_WriteBit(GPIOE, GPIO_Pin_4, Bit_SET);    // Turn On LED1 */
Delay(100);
  GPIO_WriteBit(GPIOE, GPIO_Pin_5, Bit_SET);    // Turn On LED2 */



}

void SetupLED (void)
{

/* Enable GPIOE clock 
*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);

/* Configure PE4..PE5 as outputs push-pull, max speed 50 MHz 
*/
    GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4  | GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE, &GPIO_InitStructure);

}



Verdrahtet sind die led's so

PE4 ---[ R ]--|<|---VDD
PE5 ---[ R ]--|<|---VDD
von AVerr (Gast)


Lesenswert?

Mich wundert, dass der Code kompiliert ... in der Funktion SetupLED 
benutzt du GPIO_InitStructure, ohne diese Variable zu definieren:
1
GPIO_InitTypeDef GPIO_InitStructure;
2
GPIO_StructInit(&GPIO_InitStructure);

cell85 schrieb:
> Verdrahtet sind die led's so
>
> PE4 ---[ R ]--|<|---VDD
> PE5 ---[ R ]--|<|---VDD

Dann dürften die LEDs beide nicht leuchten, wenn ihre Bits gesetzt sind.
Strom fließt ja nur, wenn PE4/PE5 auf GND gelegt sind.
von cell85 (Gast)


Lesenswert?

doch die ist definiert in der setup.c  aber die habe ich hier nicht 
reinkopiert.

Genau die LED-Ports sind ja normalerweise auf high und ich müsste ja 
RESET machen um die LED zu aktivieren.

ich glaub ich hatte ein denkfehler.

RESET macht LED an , SET machts aus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.