Advertisement
Guest User

Untitled

a guest
May 16th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.31 KB | None | 0 0
  1. #include <avr/io.h>
  2.  
  3.     /*
  4.      * Wenn PORTA (0) = 0 dann : PORTB = PIND;
  5.      * Wenn PORTA (0) = 1 dann : PORTB(4:7) = PIND(0:3) und PORTB(0:3) = PIND(4:7)
  6.      * PORTD 1100 0101
  7.      * PORTB 0101 1100
  8.      */
  9.  
  10.      /*
  11.       * DDR -> Data Direction (Input oder Output)
  12.       * PINA, PINB, PINC -> auslesn
  13.       * PORTA, PORTB, PORTC -> ausgeben
  14.       */
  15.  
  16.      /*
  17.       *
  18.       */
  19.  
  20. void init() {
  21.     DDRA = 0b01111111;
  22.     DDRB = 0xFF;
  23.     DDRD = 0x00;
  24. }
  25.  
  26. uint8_t getPortA0() {
  27.     return PINA & 0b00000001;
  28. }
  29.  
  30. int main() {
  31.     init();
  32.     if(getPortA0() == 0x01) {
  33.         uint8_t a = PIND << 4;
  34.         uint8_t b = PIND >> 4;
  35.         PORTB = a | b;
  36.     } else {
  37.         PORTB = PIND;
  38.     }
  39.  
  40. }
  41.  
  42. /*
  43. int main(void) {
  44.     DDRA = 0b01111111;
  45.     DDRB = 0xFF;
  46.     DDRD = 0x00;
  47.  
  48.     while(1) {
  49.         if((PINA & 0b00000001) == 0b00000000) {
  50.             PORTB = PIND;
  51.         } else {
  52.             /*
  53.              * PORTB = PIND << 4
  54.              * 1010 0001 -> 0001 0000
  55.              * PORTB oder gleich PIND >> 4
  56.              * 1010 0001 -> 0000 1010
  57.              *
  58.              * 0001 0000
  59.              * 0000 1010
  60.              * ODER
  61.              * 0001 1010
  62.  
  63.             uint8_t a = PIND << 4;
  64.             uint8_t b = PIND >> 4;
  65.             PORTB = a | b;
  66.         }
  67.     }
  68. }
  69. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement