Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.91 KB | None | 0 0
  1. /******************************************************************************
  2. ;*  Hochschule für Angewandte Wissenschaften Hamburg                                                   *  
  3. ;*  Fakultät DMI                                                                                                                           *
  4. ;*  Department Medientechnik                                                                                                    *
  5. ;*  Veranstaltung: Informatik 3 & Elektronik                                  *
  6. ;******************************************************************************
  7. ;*  Praktikum Versuch2                                                                                                          *
  8. ;*  Programmrumpf für C-Programme mit µVision4 von Keil                                               *
  9. ;******************************************************************************
  10. ;*Namen / Matrikel-Nr.:     1.  Till Grote    2079390                           *
  11. ;*                                              2.  Erik Münch    2315527                                                  *
  12. ;*                                              3.  Shiwam Arora  2270256                                                       *
  13. ;******************************************************************************
  14. ;*  Abgabedatum:                    23.10.2017                                                                                                      *
  15. ;*****************************************************************************/
  16.  
  17.  
  18. #include <lpc11xx.h>            // LPC1114 definitions
  19. int i = 0; //Timer
  20. unsigned int button1;
  21. int count = 0;
  22.  
  23. int main(){
  24.    
  25.     LPC_SYSCON->SYSAHBCLKCTRL|=(1<<9); //mit Bitverschiebung auf 32Bit gestellt
  26.     LPC_TMR32B0->PR = 12000; //Timer eingestellt/Prescaler auf 1 Takt pro ms
  27.    
  28.     LPC_GPIO2->DIR = 0xC0; // Output Pin2_6 und P2_7 definiert 1100 0000
  29.     LPC_GPIO3->DIR = 0x3F; // Output Pin3_0 und P3_5 definiert 0011 1111
  30.    
  31.     LPC_TMR32B0->TCR = 0x2; //Timer reset und anhalten, TimeControlReg
  32.    
  33.     LPC_TMR32B0->MR3=1; //Match Reg 3 = 1
  34.     LPC_TMR32B0->MCR=0x600; // Match Control Reg wenn sich MCR meldet soll Interrupt und Timerreset, 600 war im reg3
  35.     LPC_TMR32B0->TCR = 0x1; //Timer starten
  36.    
  37.     NVIC->ISER[0]|= 0x40000; //Verbindet Interrupt mit der Exception auf bit 19 - 0100 0000 0000 0000
  38.    
  39.     while(1){ ; }
  40. }
  41.  
  42.  
  43.  
  44. void TIMER32_0_IRQHandler(void){
  45.    
  46.     button1 = LPC_GPIO2->DATA; //Daten vom GPIO2 auslesen
  47.     button1 = (button1 & 0x200)>>9; //0x200 >>9 = 1
  48.    
  49.     if(!button1){//wenn button gedrückt
  50.         if(count<30){ //wird bis 30 hochgezählt
  51.             count++;
  52.         }}
  53.     else{
  54.         count=0;//button nicht gedrückt: counter auf 0
  55.     }
  56.    
  57.     if(count>=30){ //wenn der counter groeßer als 30
  58.         i++;// wird eine LED weitergeschaltet
  59.         count=-500;//und der Counter auf negativ gesetzt um wiederholtes weiterschalten zu vermeiden.
  60.     }
  61.    
  62.    
  63. if(i == 1){
  64.     LPC_GPIO3->DATA= 0x3E; //3 LED1
  65.     LPC_GPIO2->DATA= 0xFF; //2 alle aus
  66. }
  67. if(i == 2){
  68.     LPC_GPIO3->DATA= 0x3D; //3 LED2
  69. }
  70. if(i == 3)
  71. {LPC_GPIO3->DATA= 0x3B;} //3 LED3
  72.  
  73. if(i == 4)
  74. {LPC_GPIO3->DATA = 0x37; }//3 LED4
  75.  
  76. if(i == 5){LPC_GPIO3->DATA = 0x2F;} //3 LED5
  77.  
  78. if(i == 6) {
  79.     LPC_GPIO3->DATA = 0x1F; //3 LED6
  80. }
  81.  
  82. if(i == 7){
  83. LPC_GPIO2->DATA = 0xFBF;//2 LED7
  84. LPC_GPIO3->DATA = 0xFF;//3 alle aus
  85. }
  86.  
  87. if(i == 8) {
  88. LPC_GPIO2->DATA = 0xF7F; //2 LED8
  89.  
  90. }
  91.  
  92.  
  93.  
  94. if (i>8) //vorne anfangen bei den LEDs
  95. {i=1;}
  96.  
  97. LPC_TMR32B0->IR = 0x8;//IR quittieren für MR3
  98.  
  99. return;
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement