Hallo Bit Freunde,
ich habe schon in einem anderen Forum diese Frage gestellt jedoch kommt nur schmarrn bei raus oder nicht tiefgründig genug um es zu verstehen..
Mein Vorhaben: Es gibt ein kleines Board mit einem ESP32C3 Controller. Es soll via Struct und Pointer ( in C) eine kleine I/O Bibliothek aufgebaut werden (ich weiß das es dafür schon fertige Sachen gibt) damit ich es von Grund auf lerne (bin schon wieder ein Weilchen aus dem Thema draußen..)
Dieser Code ist mein aktueller Stand:
CodeBox C
Die LED konnte ich auch schon mit den herkömmlichen Befehlen zum leben erwecken.
Was mache ich bei dem Code mit der Struktur und den Zeigern falsch?
ich habe schon in einem anderen Forum diese Frage gestellt jedoch kommt nur schmarrn bei raus oder nicht tiefgründig genug um es zu verstehen..
Mein Vorhaben: Es gibt ein kleines Board mit einem ESP32C3 Controller. Es soll via Struct und Pointer ( in C) eine kleine I/O Bibliothek aufgebaut werden (ich weiß das es dafür schon fertige Sachen gibt) damit ich es von Grund auf lerne (bin schon wieder ein Weilchen aus dem Thema draußen..)
Dieser Code ist mein aktueller Stand:
CodeBox C
//Mapping Address
//GPIO 0x6000_4000 to 0x6000_4FFF
#define GPIO_BASE 0x60004000ul
typedef struct
{
volatile uint32_t *FuncOutCnfg;
volatile uint32_t *OutReg;
volatile uint32_t *EnableReg;
}sGPIO;
volatile sGPIO *GPIO;
void setup() {
GPIO->FuncOutCnfg = (uint32_t*)(GPIO_BASE + 0x0004);
GPIO->EnableReg = (uint32_t*)(GPIO_BASE + 0x0020);
GPIO->OutReg = (uint32_t*)(GPIO_BASE + (0x0554 + (4 * 8)));
*GPIO->FuncOutCnfg |= 0x80;
*GPIO->EnableReg |= 1<<8u;
}
void loop() {
delay(300);
*GPIO->OutReg &= ~1<<8u;
delay(300);
*GPIO->OutReg |= 1<<8u;
}
Die LED konnte ich auch schon mit den herkömmlichen Befehlen zum leben erwecken.
Was mache ich bei dem Code mit der Struktur und den Zeigern falsch?