uwezi icon

labb_03_code_03.c

uwezi | PRO | 11/13/19 10:32:53 PM UTC | 0 ⭐ | 702 👁️ | Never ⏰ | []
C |

1.12 KB

|

None

|

0 👍

/

0 👎

/*
ATmega8, 48, 88, 168, 328
 
/Reset PC6|1   28|PC5
 seg_A PD0|2   27|PC4
 seg_B PD1|3   26|PC3 
 seg_C PD2|4   25|PC2 
 seg_D PD3|5   24|PC1 
 seg_E PD4|6   23|PC0 
       Vcc|7   22|Gnd
       Gnd|8   21|Aref
       PB6|9   20|AVcc
       PB7|10  19|PB5 SCK   Anode_1 
 seg_F PD5|11  18|PB4 MISO  Anode_2
 seg_G PD6|12  17|PB3 MOSI  Anode_3
 dot   PD7|13  16|PB2       Anode_4
       PB0|14  15|PB1
*/
 
#define F_CPU 1000000UL  // 1 MHz standard clock
 
#include <avr/io.h>     // defines all macros and symbols
#include <util/delay.h> // defines time delay functions 
 
uint8_t framebuffer[4] = {0b00111111,0b00000110,0b01011011,0b01001111};
 
int main (void)
{
  uint8_t i;
 
  DDRD = 0b11111111;     //  all pins of PORT D as output
  DDRB = 0b00111100;     // some pins of PORT B as output
 
  while (1)              // infinite main loop
  {
    for (i=0; i<4; i++)
    {
      PORTB &=  0b11000011;        // all digits off
      PORTB |= (0b00000100 << i);  // activate digit #i
      PORTD  = ~framebuffer[i];    // output bit pattern
      _delay_ms(500);              // wait 500 ms
    }
  }
}

Comments