From b6b530b2191b784a1cb085e5a80cbcde905a54a0 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Wed, 5 Mar 2025 15:46:49 +0100 Subject: [PATCH] wip ex00 not working --- module01/ex00/main.c | 47 +++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/module01/ex00/main.c b/module01/ex00/main.c index 8e24ca3..6336ca3 100644 --- a/module01/ex00/main.c +++ b/module01/ex00/main.c @@ -5,19 +5,22 @@ // #define FIRST_LETTER(x) FIRST_LETTER_IMPL(x) // #define PORT_LETTER(PIN) FIRST_LETTER(PIN) -#define SET(REGISTER, BIT) REGISTER |= 1 << BIT -#define CLEAR(REGISTER, BIT) REGISTER &= ~(1 << BIT) -#define TEST(REGISTER, BIT) REGISTER & 1 << BIT -#define TOGGLE(REGISTER, BIT) REGISTER ^= 1 << BIT +#define SET(register, bit) register |= 1 << bit +#define CLEAR(register, bit) register &= ~(1 << bit) +#define TEST(register, bit) register & 1 << bit +#define TOGGLE(register, bit) register ^= 1 << bit -#define TEST_PIN(PORT, BIT) PIN ## PORT & 1 << BIT -#define TOGGLE_PIN(PORT, BIT) PIN ## PORT |= 1 << BIT -#define MODE_INPUT(PORT, BIT) CLEAR(DDR ## PORT, BIT) -#define MODE_OUTPUT(PORT, BIT) SET(DDR ## PORT, BIT) -#define IS_PIN_SET(PORT, BIT) (TEST_PIN(PORT, BIT)) == 0 -#define IS_PIN_CLEAR(PORT, BIT) (TEST_PIN(PORT, BIT)) == 1 -#define TURN_ON(_PORT, BIT) SET(PORT ## _PORT, BIT) -#define TURN_OFF(_PORT, BIT) CLEAR(PORT ## _PORT, BIT) +#define TEST_PIN(port, bit) TEST(PIN ## port, bit) +#define TOGGLE_PIN(port, bit) TEST(PIN ## port, bit) +#define MODE_INPUT(port, bit) CLEAR(DDR ## port, bit) +#define MODE_OUTPUT(port, bit) SET(DDR ## port, bit) +#define IS_PIN_SET(port, bit) (TEST_PIN(port, bit)) == 0 +#define IS_PIN_CLEAR(port, bit) (TEST_PIN(port, bit)) == 1 + +// LEDs +#define TURN_ON_LED(bit) SET(PORTB, bit) +#define TURN_OFF_LED(bit) CLEAR(PORTB, bit) +#define TOGGLE_LED(led) TOGGLE_PIN(B, led) #define D1 0 @@ -27,16 +30,28 @@ #define SW1 2 #define SW2 4 -#define TIME 500 +#define PRESCALE_VALUE 64 +#define TIME(ms) (((F_CPU / PRESCALE_VALUE) * ms) / 1000) #define LED1 B0 int main() { MODE_OUTPUT(B, D2); - TURN_OFF(B, D2); + TURN_OFF_LED(D2); + + // TCCR1B |= (PRESCALE); // set timer with prescale + // TCCR1B |= ((1 << CS10 ) | (1 << CS11 ) ); // set timer with prescale + while(1) { - TOGGLE_PIN(B, D2); - _delay_ms(TIME); + // if ( TCNT1 >= TIME(500)) { + + // TOGGLE_LED(D2); + TOGGLE_PIN(B, D2); + _delay_ms(500); + + + // TCNT1 = 0; // reset timer value + // } } } \ No newline at end of file