AVR Interface

#1623650
Lesenswert?
• ▲
▼
1
#include <avr/io.h>
2
/********************** Macro definitions *******************************/
3

4
//                      Access bits like variables:
5
struct bits {
6
  uint8_t b0:1;
7
  uint8_t b1:1;
8
  uint8_t b2:1;
9
  uint8_t b3:1;
10
  uint8_t b4:1;
11
  uint8_t b5:1;
12
  uint8_t b6:1;
13
  uint8_t b7:1;
14
} __attribute__((__packed__));
15
#define SBIT_(port,pin) ((*(volatile struct bits*)&port).b##pin)
16
#define SBIT(x,y)       SBIT_(x,y)
17

18

19
/********************** Hardware dependencies ***************************/
20

21
#define LED             SBIT( PORTB, PB0 )
22
#define LED_DDR         SBIT( DDRB,  PB0 )
23
#define BUTTON_PULLUP   SBIT( PORTB, PB1 )
24
#define BUTTON_PIN      SBIT( PINB,  PB1 )
25

26

27
/********************** Code ********************************************/
28

29
int main( void )
30
{
31
  BUTTON_PULLUP = 1;
32
  LED_DDR = 1;
33

34
  for(;;){
35
    LED = BUTTON_PIN;
36
  }
37
}


Peter

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.