Fernando Freitas Alves edited Appendix C: LAB2C.c.tex  about 8 years ago

Commit id: 4e7e82d656c1c57d613099ebe60732a409df9b21

deletions | additions      

       

\appendix Appendix C \section{Appendix C:  \\Modified code LAB2C.c. LAB2C.c.}  \begin{lstlisting}[language=C]  #defineSYSTEM_CLOCK 10606061  #define SIGNAL_FREQ 50  #define DUTY_CYCLE 0.2  #define TIMER_COUNTER 350  #define TIMER_COUNTER_M (UBYTE)  ((TIMER_COUNTER & 0x300) >> 8)  #define TIMER_COUNTER_L (UBYTE)  (TIMER_COUNTER & 0xFF)  #define DUTY_TIME (float)  DUTY_CYCLE / SIGNAL_FREQ  #define TIMER_SIG_COUNT (int)  (DUTY_TIME / TIMER_COUNTER * SYSTEM_CLOCK)  #define ON 1  #define OFF 0  #define LED 1  #define  TASK_STK_SIZE 512 #define OS_MAX_EVENTS 1 #define OS_MAX_TASKS 4 #define OS_TASK_STAT_EN 1 #define OS_TICKS_PER_SEC 128 #use "ucos2.lib"  void TaskStart(void *data);  void TaskScreenUpd(void Task(void  *data); void InitTimerInt();  void Tmr_B_isr();  void UpdateStat(); 

int int_count;  int display_int_count;  int Timer_B_value;  int output_level;  void main (void)  {  brdInit(); 

}  void TaskStart (void *data)  {  output_level = OFF;  OSTaskCreate(TaskScreenUpd, OSTaskCreate(Task,  (void *)0, TASK_STK_SIZE, 11);  InitTimerInt();  OSStatInit(); 

OSTimeDly(OS_TICKS_PER_SEC);  }  }  nodebug void TaskScreenUpd Task  (void *data) {  auto UBYTE err;  auto char display[128]; 

sprintf(display, "%5d", display_int_count);  DispStr(35, 2, display);  display[0] = '\0';  sprintf(display, "%5d", 350-Timer_B_value); Timer_B_value-350);  DispStr(23, 4, display);  }  } 

int TBCMR_status, TBCLR_status;  char TMRB_status;  TMRB_status = RdPortI(TBCSR);  WrPortI(TBM1R, NULL, TIMER_COUNTER_M); 0x40);  WrPortI(TBL1R, NULL, TIMER_COUNTER_L); 0x5E);  int_count++;  if (int_count == 1000) {  display_int_count++;  int_count = 0;  OSSemPost(TimerSem);  }  TBCLR_status = RdPortI(TBCLR);  TBCMR_status = RdPortI(TBCMR);  if (!(TBCLR_status & 0x80) &&  ((TBCLR_status ^ RdPortI(TBCLR)) & 0x80))  TBCMR_status--;  if (int_count == TIMER_SIG_COUNT) {  output_level ^= ON;  digOut(LED, output_level);  }  OSIntExit();  }  void UpdateStat() 

y += 0x20;  printf ("\x1B=%c%c%s", x, y, s);  }  \end{lstlisting} \end{appendices}