cse466 lab2

226 days ago by jay

This little script generates the logic to control frequencies on an MSP430.

## Parameters ## f = [262,277,294,311,330,349,370,392,415,440,466,494] # frequencies adc_max = 0xffff # maximum value read from ADC (darkest) adc_min = 0x3750 # minumum value read from ADC (lightest) clock_speed = 1000000 # timer clock frequency ################ p = [int(1.0 * clock_speed / i) for i in f] # "periods" for TACCR0 per frequency num_notes = len(f) interval = int((adc_max - adc_min) / num_notes) # step size for ADC value between notes adc_cutoffs = [hex(0x3750 + i * interval) for i in range(1,num_notes+1)] for i in range(len(adc_cutoffs)): if (i != 0): print " else", else: print " ", if (i != len(adc_cutoffs)-1): print "if (adc_val < 0x" + V[i] + ")", print " {\n TACCR0 = " + str(p[i]) + ";\n }" print " TACCR1 = TACCR0 >> 1;" 
       
   if (adc_val < 0x4809)  {
    TACCR0 = 3816;
  }
  else if (adc_val < 0x58c2)  {
    TACCR0 = 3610;
  }
  else if (adc_val < 0x697b)  {
    TACCR0 = 3401;
  }
  else if (adc_val < 0x7a34)  {
    TACCR0 = 3215;
  }
  else if (adc_val < 0x8aed)  {
    TACCR0 = 3030;
  }
  else if (adc_val < 0x9ba6)  {
    TACCR0 = 2865;
  }
  else if (adc_val < 0xac5f)  {
    TACCR0 = 2702;
  }
  else if (adc_val < 0xbd18)  {
    TACCR0 = 2551;
  }
  else if (adc_val < 0xcdd1)  {
    TACCR0 = 2409;
  }
  else if (adc_val < 0xde8a)  {
    TACCR0 = 2272;
  }
  else if (adc_val < 0xef43)  {
    TACCR0 = 2145;
  }
  else  {
    TACCR0 = 2024;
  }
  TACCR1 = TACCR0 >> 1;
   if (adc_val < 0x4809)  {
    TACCR0 = 3816;
  }
  else if (adc_val < 0x58c2)  {
    TACCR0 = 3610;
  }
  else if (adc_val < 0x697b)  {
    TACCR0 = 3401;
  }
  else if (adc_val < 0x7a34)  {
    TACCR0 = 3215;
  }
  else if (adc_val < 0x8aed)  {
    TACCR0 = 3030;
  }
  else if (adc_val < 0x9ba6)  {
    TACCR0 = 2865;
  }
  else if (adc_val < 0xac5f)  {
    TACCR0 = 2702;
  }
  else if (adc_val < 0xbd18)  {
    TACCR0 = 2551;
  }
  else if (adc_val < 0xcdd1)  {
    TACCR0 = 2409;
  }
  else if (adc_val < 0xde8a)  {
    TACCR0 = 2272;
  }
  else if (adc_val < 0xef43)  {
    TACCR0 = 2145;
  }
  else  {
    TACCR0 = 2024;
  }
  TACCR1 = TACCR0 >> 1;