SaveText.Ru

Без имени
  1. #include "DSP2803x_Device.h"
  2. #include "DSP2803x_Examples.h"
  3.  
  4. int t2=0;
  5. int led2_state=0;
  6. int led2_cycles=0;
  7. int t1=0;
  8. int led1_state=0;
  9. int led1_cycles=0;
  10. int state=0;
  11. int k=4;
  12. int n=4;
  13.  
  14. void led1_control (void) {
  15.  t1++;
  16.  if (t1 < 50) {
  17.   led1_state=1;
  18.  } else {
  19.   led1_state=0;
  20.  }
  21.  if (t1 == k){
  22.   t1=0;
  23.  }
  24. }
  25.  
  26. void led2_control (void) {
  27.  t2++;
  28.  if (t1 < 50) {
  29.    led2_state=1;
  30.   } else {
  31.    led2_state=0;
  32.   }
  33.   if (t2 == k){
  34.    t2=0;
  35.   }
  36. }
  37.  
  38. void led_all_control (void){
  39.  
  40.  if(state==0){
  41.   led1_control();
  42.    state=1;
  43.  }else{
  44.   led2_control();
  45.   state=0;
  46.   }
  47.  
  48. }
  49.  
  50. interrupt void isr_timer (void) {
  51.  
  52.  led_all_control();
  53.  
  54.  CpuTimer0Regs.TCR.bit.TIF = 1;
  55.  PieCtrlRegs.PIEACK.bit.ACK1=1;
  56. }
  57.  
  58. void main(void){
  59.  
  60.  InitSysCtrl();//сторожевой таймер. предотвращает зависание.
  61.  // инициализация PIE
  62.  InitPieCtrl();
  63.  // инициализация векторов прерывания
  64.  InitPieVectTable();
  65.  
  66.  // разрешить изменение защищенных регистров
  67.  EALLOW;
  68.  
  69.  // настройка таймерана частоту 1 кГц
  70.  CpuTimer0Regs.PRD.all = 60000; // Записываем значение периода.
  71.  CpuTimer0Regs.TCR.bit.TIE = 1;
  72.  
  73.  //разрешение прерываний
  74.  PieCtrlRegs.PIEIER1.bit.INTx7=1;
  75.  IER |= 0x1;
  76.  
  77.  //функция обработки прерывания
  78.  PieVectTable.TINT0 = isr_timer;
  79.  
  80.  //мутильплицирование выводов
  81.  GpioCtrlRegs.GPAMUX2.bit.GPIO31=0;
  82.  GpioCtrlRegs.GPBMUX1.bit.GPIO34=0;
  83.  
  84.  GpioCtrlRegs.GPADIR.bit.GPIO31=1;
  85.  GpioCtrlRegs.GPBDIR.bit.GPIO34=1;
  86.  
  87.  EDIS;
  88.  
  89.  EINT;
  90.  
  91.  while (1){
  92.   if (led1_state == 0){
  93.     GpioDataRegs.GPASET.bit.GPIO31=1;
  94.   }else{
  95.     GpioDataRegs.GPACLEAR.bit.GPIO31=1;
  96.   }
  97.   if (led2_state == 0){
  98.    GpioDataRegs.GPBSET.bit.GPIO34=1;
  99.   }else{
  100.      GpioDataRegs.GPBCLEAR.bit.GPIO34=1;
  101.   }
  102.  }
  103. }

Share with your friends:

Print