ARM cortex m3 , es geht immer nur ein LED an (GPIO set bit)

Gast #2445713
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
Gast #2445727
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.
Gast #2445773
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.

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