<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic I cant figure out what is wrong in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-cant-figure-out-what-is-wrong/m-p/181570#M6625</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I cant figure out what is wrong with my code.&amp;nbsp; Im pretty sure my getkey(), getnum() functions work, but when i run my program i just get clicking in my speaker.&amp;nbsp; I think i have the interrupts wrong where im not updating a compare register, or maybe its something simple like 0x0F should be 0xFF or i messed up on the math operation like &amp;amp;= or |= or ==... Any input would be greatly appreciated. Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* common defines and macros */#include &amp;lt;mc9s12c128.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* derivative information */#include &amp;lt;math.h&amp;gt;#include &amp;lt;float.h&amp;gt;#pragma LINK_INFO DERIVATIVE "mc9s12c128"#define NUMBER_OF_BLACK_KEYS&amp;nbsp;&amp;nbsp; 36#define MAX_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85#define MIN_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20//INTS and BYTESvolatile int i = 0;volatile int j = 0;volatile int k = 0;volatile int l = 0;volatile int m = 0;volatile int once = 0;volatile byte hold = 0;volatile byte temp = 0;volatile byte temp1 = 0;word msCount = 0;word msCount1 = 0;word playchannel_6;word playchannel_7;//ARRAYSvolatile int number[3] = {0};volatile double freq[15] = {0};volatile int keys[15] = {0};int blackKeyArray[NUMBER_OF_BLACK_KEYS] =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { 22, 25, 27, 30, 32, 34, 37, 39, 42, 44, 46, 49, 51,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54, 56, 58, 61, 63, 66, 68, 70, 73, 75, 78, 80, 82,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85, 87, 90, 92, 94, 97, 99, 102, 104, 106 }; //STRUCTtypedef struct{&amp;nbsp;&amp;nbsp; int noteNumber;&amp;nbsp;&amp;nbsp; word start;&amp;nbsp;&amp;nbsp; word stop; }Note;&amp;nbsp; Note record[101] = {0,0,0}; Note demo[38] = {0,0,0};&amp;nbsp;&amp;nbsp;&amp;nbsp; //********************************WAITINGvoid waiting() {for(k = 0; k &amp;lt; 5 ; k++){&amp;nbsp;&amp;nbsp; }}//*****************************Reg Setupvoid setreg(){TSCR1 = 0x80; //Turn on Timer ADDRESS -046-TCTL1 = 0x50; //Timer Control ADDRESS -048-TSCR2 = 0x03;//SETS CLOCK TO 1MHZ TIMER CONTROL REGISTER ADDRESS -04D-DDRAD = 0XFF;//Set LED InputDDRT = 0xC0;DDRM = 0x0F;//KEYPAD SETPERT = 0x00;TIOS = 0x20;TIE = 0xE0;msCount = 0;temp1 = 0;i = 0;j = 0;}//**************************Get Input From Keyboardbyte getkey(){int test1 = 1;int test = 0;byte key1 = 0xFF;for(m=0;m&amp;lt;6;m++){key1 = 0xFF; if(test1 = 2) {&amp;nbsp; test = 1;}PERT = 0x00;//Test Row 1PTM_PTM0 = 0x01;waiting();if(PTT_PTT0 == 1)key1 = 0x00;if(PTT_PTT1 == 1)key1 = 0x01;if(PTT_PTT2 == 1)key1 = 0x02;if(PTT_PTT3 == 1)key1 = 0x03;//Test Row 2PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x04;if(PTT_PTT1 == 1)key1 = 0x05;if(PTT_PTT2 == 1)key1 = 0x06;if(PTT_PTT3 == 1)key1 = 0x0F;//Test Row 3PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x07;if(PTT_PTT1 == 1)key1 = 0x08;if(PTT_PTT2 == 1)key1 = 0x09;if(PTT_PTT3 == 1)key1 = 0x0A;//Test Row 4 PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x0B;if(PTT_PTT1 == 1)key1 = 0x0C;if(PTT_PTT2 == 1)key1 = 0x0D;if(PTT_PTT3 == 1)key1 = 0x0E;while(test == 1){&amp;nbsp;&amp;nbsp;&amp;nbsp; test = 0;&amp;nbsp;&amp;nbsp; if(hold != key1){&amp;nbsp;&amp;nbsp; test1--;&amp;nbsp;&amp;nbsp; test1--;&amp;nbsp;&amp;nbsp; m--;}} hold = key1; test1++; }return key1; }//***********************Control Button Pressedbyte Control_Pressed(byte key1){once = 0;key1 = getkey(); if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0xFF; }&amp;nbsp; while(once == 1){&amp;nbsp; waiting();&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this ????&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; } }&amp;nbsp; while(once == 2){ TIE = 0x00; key1 = getkey(); temp1 = 0;&amp;nbsp; j = 0; while((temp1 &amp;lt; 9)&amp;amp;&amp;amp;(key1 == 0xFF)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = j + pow(2,temp1); for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = j;&amp;nbsp; }&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = j; }temp1++;}j=0;while(temp1 != 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = pow(2,temp1)-1 ; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = j;&amp;nbsp; }&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = j; }temp1--;if(temp1 == 0) {&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = 0x00;&amp;nbsp; }&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0x00; }}}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x03){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0A){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0E){&amp;nbsp;&amp;nbsp;&amp;nbsp; //TIE = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x00){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 5;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x01){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 6;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp; continue; }}//**********************************GetNumberint getnumber(volatile int midi){&amp;nbsp;&amp;nbsp; volatile int midi1 = 0xFF;&amp;nbsp; once = 0;&amp;nbsp;&amp;nbsp; // Clear the number array&amp;nbsp; number[0] = 0;&amp;nbsp; number[1] = 0;&amp;nbsp; number[2] = 0;&amp;nbsp;&amp;nbsp; while(once == 0){&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this ???
&amp;nbsp; LEDFlash(midi1); //*******************************LED FLASHING&amp;nbsp; continue;&amp;nbsp; }&amp;nbsp;&amp;nbsp; if(midi == 0x0E){&amp;nbsp; temp1 = 2;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; else{&amp;nbsp;&amp;nbsp;&amp;nbsp; number[0] = midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; midi1 = number[0];&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 1;&amp;nbsp; }&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait for user to unpress button&amp;nbsp;&amp;nbsp; while(once == 1){&amp;nbsp;&amp;nbsp; LEDFlash(midi1);&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Storing Second Number&amp;nbsp; while(once == 2){&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp; if(midi == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this???&amp;nbsp;&amp;nbsp;&amp;nbsp; LEDFlash(number[0]);&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0E){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; else{&amp;nbsp;&amp;nbsp;&amp;nbsp; number[1] = midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; midi1 = midi1*10 + number[1];&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 3;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait for user to unpress button&amp;nbsp;&amp;nbsp;&amp;nbsp; while(once == 3){&amp;nbsp;&amp;nbsp; LEDFlash(number[1]);&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(once == 4){&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp; LEDFlash(number[1]);&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0E)&amp;nbsp;&amp;nbsp;&amp;nbsp; return midi1;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp; return midi1*10 + midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; }int midinumber(){volatile int midi = 0xFF;PERT = 0x00;//Test Row 1PTM = PTM &amp;lt;&amp;lt; 1;PTM_PTM0 = 0x01;waiting();if(PTT_PTT0 == 1)midi = 0x01;if(PTT_PTT1 == 1)midi = 0x02;if(PTT_PTT2 == 1)midi = 0x03;//Test Row 2PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)midi = 0x04;if(PTT_PTT1 == 1)midi = 0x05;if(PTT_PTT2 == 1)midi = 0x06;//Test Row 3PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)midi = 0x07;if(PTT_PTT1 == 1)midi = 0x08;if(PTT_PTT2 == 1)midi = 0x09;//Test Row 4 PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT1 == 1)midi = 0x00;if(PTT_PTT2 == 1)midi = 0x0E;return midi; }//**************************************LED FlashLEDFlash(volatile int flash){ for(i = 0; i &amp;lt; 10000 ; i++){&amp;nbsp; PTAD = flash;&amp;nbsp; }&amp;nbsp; for(i = 0; i &amp;lt; 10000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0x00;}}//**************************************Set Frequencysetfreq(volatile int input){&amp;nbsp; // Verify the Midi Note Range&amp;nbsp; volatile int begin = 60;&amp;nbsp;&amp;nbsp; for(j=0;j&amp;lt;15;++j){&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; NUMBER_OF_BLACK_KEYS; ++i)&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(input == blackKeyArray[i]){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++input;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[j] = input;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++input;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;15;++i){ begin = keys[i];&amp;nbsp;&amp;nbsp; if(i==0){ freq[i] = 27.5*pow(1.059463,(begin - 21)); continue; } freq[i] = 27.5 * pow(1.059463,(begin - 21));}begin = keys[0];for(i=0;i&amp;lt;15;++i){&amp;nbsp; freq[i] = 1000000/(2*freq[i]);&amp;nbsp;&amp;nbsp; } }//**********************************Produce SOUNDvoid Produce_Sound(byte sound){ if (sound == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???&amp;nbsp; TIOS = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x40;}else if (sound == 0x0F){&amp;nbsp; TIOS = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x40;} else{while (getkey() == sound){PTAD = keys[sound];TIOS = 0x40;TIE = 0x40;playchannel_6 = freq[sound];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }}} //***************************INTERRUPTSvoid interrupt 13 ISR_Timer5(void) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TC5 += 1000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((TFLG1 != 0x40)&amp;amp;&amp;amp;(TFLG1 != 0x80))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } void interrupt 14 ISR_Timer6(void) {&amp;nbsp; TC6 += playchannel_6;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }void interrupt 15 ISR_Timer7(void) { msCount1++;&amp;nbsp; TC7 += playchannel_7;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x80;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //??? }//LED RESETLED_reset(){&amp;nbsp;&amp;nbsp; LEDFlash(0x01);&amp;nbsp; LEDFlash(0x02);&amp;nbsp; LEDFlash(0x04);&amp;nbsp; LEDFlash(0x08);&amp;nbsp; LEDFlash(0x10);&amp;nbsp; LEDFlash(0x20);&amp;nbsp; LEDFlash(0x40);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x40);&amp;nbsp; LEDFlash(0x20);&amp;nbsp; LEDFlash(0x10);&amp;nbsp; LEDFlash(0x08);&amp;nbsp; LEDFlash(0x04);&amp;nbsp; LEDFlash(0x02);&amp;nbsp; LEDFlash(0x01);&amp;nbsp; }void main(void) {volatile int key1;volatile int midi = 60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note scale[9] = {{60, 1000, 1150},{62, 1300, 1450},{64, 1600, 1750},{65, 1900, 2050},{67, 2200, 2350},{69, 2500, 2650},{71, 2800, 2950},{72, 3100, 3250},{0,0,0} };&amp;nbsp; setreg();setfreq(midi); EnableInterrupts;while(1){&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp; PTAD = (key1 + (0x03 * key1)) + 4;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp; Control_Pressed(key1);&amp;nbsp; }&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; //**************************TEMP1 == 3 PLAY SCALE&amp;nbsp; if(temp1 == 3){&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;8;i++){&amp;nbsp;&amp;nbsp; scale[i].noteNumber = freq[i];&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1 = 1000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;9;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount1 &amp;lt;= scale[i].start){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = scale[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount1 &amp;lt;= scale[i].stop){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(scale[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp; }//***************temp1 == 4 RECORD MODE
&amp;nbsp;&amp;nbsp; --TIE = 0x00--
&amp;nbsp;&amp;nbsp; --TIOS = 0x00--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(temp1 == 4){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; temp = 1;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; //*****************************CLEAR RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;101;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].noteNumber = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].start = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].stop = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp; msCount = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_reset();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //*************RECORD STARTING&amp;nbsp;&amp;nbsp; while(i &amp;lt; 101){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; while(getkey() == 0xFF){&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp; (scale[i])
&amp;nbsp;&amp;nbsp; l=i;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i == 101)&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 100;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((key1 != 0xFF)&amp;amp;&amp;amp;(key1 != 0x0F)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].start = msCount;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(getkey() == key1){&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp; temp1 = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(temp1 == 1){&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].start = msCount;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; //While(i &amp;lt; 101)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i == 100){&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp; (scale[i])&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; //Temp == 4&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; while(temp1 == 1){&amp;nbsp;&amp;nbsp; midi = getnumber(midi);&amp;nbsp;&amp;nbsp; if((midi &amp;lt;= MIN_NUMBER)||(midi &amp;gt;= MAX_NUMBER)){&amp;nbsp; LED_reset();&amp;nbsp;&amp;nbsp; continue;&amp;nbsp; }&amp;nbsp;&amp;nbsp; setfreq(midi);&amp;nbsp; temp1 = 0;&amp;nbsp; }&amp;nbsp;&amp;nbsp; Produce_Sound(key1);TIOS = 0x20;TIE = 0x20;//*****************************TEMP1 == 5 PLAY BACK RECORDif(temp1 == 5){&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF)&amp;nbsp;&amp;nbsp; temp = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp1 == 5){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;l;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(record[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while((msCount &amp;lt;= record[i].stop) &amp;amp;&amp;amp; (record[i].noteNumber == 0)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((msCount &amp;lt;= record[i].stop) &amp;amp;&amp;amp; (record[i].noteNumber !=0)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(record[i].noteNumber == 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = record[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }}&amp;nbsp;&amp;nbsp;&amp;nbsp; //*****************************************temp1 == 6 PLAY DEMO&amp;nbsp;&amp;nbsp; if(temp1 == 6){demo[0].noteNumber = 1275;demo[1].noteNumber = 1136;demo[2].noteNumber = 1012;demo[3].noteNumber = 851;demo[4].noteNumber = 955;demo[5].noteNumber = 851;demo[6].noteNumber = 758;demo[7].noteNumber = 851;demo[8].noteNumber = 851;demo[9].noteNumber = 637;demo[10].noteNumber = 675;demo[11].noteNumber = 637;demo[12].noteNumber = 851;demo[13].noteNumber = 1012;demo[14].noteNumber = 1275;demo[15].noteNumber = 1136;demo[16].noteNumber = 1012;demo[17].noteNumber = 851;demo[18].noteNumber = 851;demo[19].noteNumber = 851;demo[20].noteNumber = 758;demo[21].noteNumber = 851;demo[22].noteNumber = 1012;demo[23].noteNumber = 1136;demo[24].noteNumber = 1012;demo[25].noteNumber = 1275;demo[26].noteNumber = 1136;demo[27].noteNumber = 1275;demo[28].noteNumber = 1136;demo[29].noteNumber = 1703;demo[30].noteNumber = 1136;demo[31].noteNumber = 1136;demo[32].noteNumber = 851;demo[33].noteNumber = 1012;demo[34].noteNumber = 1136;demo[35].noteNumber = 1012;demo[36].noteNumber = 0; //PTAD = msCount/100;&amp;nbsp; demo[0].start = 0; demo[0].stop = 150;for(i=1;i&amp;lt;36;i++){ demo[i].start = demo[i-1].start + 325;&amp;nbsp; }for(i=1;i&amp;lt;36;i++){ demo[i].stop = demo[i-1].stop + 225;&amp;nbsp; } msCount = 0;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;36;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount &amp;lt;= demo[i].start){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = demo[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount &amp;lt;= demo[i].stop){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(demo[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }}}}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&amp;nbsp;It is supposed to populate a Keypad array 123A,456B,789C,*0#D, with the midi note middle C and the rest of the notes in the scale.&amp;nbsp; B button is used as control mode to select either normal play, record, different starting note, and playback what was recorded.&amp;nbsp; I am using channel 6 for normal play modes and channel 7 for playing back what was recorded.&amp;nbsp; My record function should save the start time of the note, the stop time of the note, and the note number to the stack where it can be later recalled for playback.&amp;nbsp; On every entry into the record mode I try to clear what was previously recorded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 09:32:00 GMT</pubDate>
    <dc:creator>RCarp</dc:creator>
    <dc:date>2020-10-29T09:32:00Z</dc:date>
    <item>
      <title>I cant figure out what is wrong</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-cant-figure-out-what-is-wrong/m-p/181570#M6625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I cant figure out what is wrong with my code.&amp;nbsp; Im pretty sure my getkey(), getnum() functions work, but when i run my program i just get clicking in my speaker.&amp;nbsp; I think i have the interrupts wrong where im not updating a compare register, or maybe its something simple like 0x0F should be 0xFF or i messed up on the math operation like &amp;amp;= or |= or ==... Any input would be greatly appreciated. Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* common defines and macros */#include &amp;lt;mc9s12c128.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* derivative information */#include &amp;lt;math.h&amp;gt;#include &amp;lt;float.h&amp;gt;#pragma LINK_INFO DERIVATIVE "mc9s12c128"#define NUMBER_OF_BLACK_KEYS&amp;nbsp;&amp;nbsp; 36#define MAX_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85#define MIN_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20//INTS and BYTESvolatile int i = 0;volatile int j = 0;volatile int k = 0;volatile int l = 0;volatile int m = 0;volatile int once = 0;volatile byte hold = 0;volatile byte temp = 0;volatile byte temp1 = 0;word msCount = 0;word msCount1 = 0;word playchannel_6;word playchannel_7;//ARRAYSvolatile int number[3] = {0};volatile double freq[15] = {0};volatile int keys[15] = {0};int blackKeyArray[NUMBER_OF_BLACK_KEYS] =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { 22, 25, 27, 30, 32, 34, 37, 39, 42, 44, 46, 49, 51,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54, 56, 58, 61, 63, 66, 68, 70, 73, 75, 78, 80, 82,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85, 87, 90, 92, 94, 97, 99, 102, 104, 106 }; //STRUCTtypedef struct{&amp;nbsp;&amp;nbsp; int noteNumber;&amp;nbsp;&amp;nbsp; word start;&amp;nbsp;&amp;nbsp; word stop; }Note;&amp;nbsp; Note record[101] = {0,0,0}; Note demo[38] = {0,0,0};&amp;nbsp;&amp;nbsp;&amp;nbsp; //********************************WAITINGvoid waiting() {for(k = 0; k &amp;lt; 5 ; k++){&amp;nbsp;&amp;nbsp; }}//*****************************Reg Setupvoid setreg(){TSCR1 = 0x80; //Turn on Timer ADDRESS -046-TCTL1 = 0x50; //Timer Control ADDRESS -048-TSCR2 = 0x03;//SETS CLOCK TO 1MHZ TIMER CONTROL REGISTER ADDRESS -04D-DDRAD = 0XFF;//Set LED InputDDRT = 0xC0;DDRM = 0x0F;//KEYPAD SETPERT = 0x00;TIOS = 0x20;TIE = 0xE0;msCount = 0;temp1 = 0;i = 0;j = 0;}//**************************Get Input From Keyboardbyte getkey(){int test1 = 1;int test = 0;byte key1 = 0xFF;for(m=0;m&amp;lt;6;m++){key1 = 0xFF; if(test1 = 2) {&amp;nbsp; test = 1;}PERT = 0x00;//Test Row 1PTM_PTM0 = 0x01;waiting();if(PTT_PTT0 == 1)key1 = 0x00;if(PTT_PTT1 == 1)key1 = 0x01;if(PTT_PTT2 == 1)key1 = 0x02;if(PTT_PTT3 == 1)key1 = 0x03;//Test Row 2PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x04;if(PTT_PTT1 == 1)key1 = 0x05;if(PTT_PTT2 == 1)key1 = 0x06;if(PTT_PTT3 == 1)key1 = 0x0F;//Test Row 3PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x07;if(PTT_PTT1 == 1)key1 = 0x08;if(PTT_PTT2 == 1)key1 = 0x09;if(PTT_PTT3 == 1)key1 = 0x0A;//Test Row 4 PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)key1 = 0x0B;if(PTT_PTT1 == 1)key1 = 0x0C;if(PTT_PTT2 == 1)key1 = 0x0D;if(PTT_PTT3 == 1)key1 = 0x0E;while(test == 1){&amp;nbsp;&amp;nbsp;&amp;nbsp; test = 0;&amp;nbsp;&amp;nbsp; if(hold != key1){&amp;nbsp;&amp;nbsp; test1--;&amp;nbsp;&amp;nbsp; test1--;&amp;nbsp;&amp;nbsp; m--;}} hold = key1; test1++; }return key1; }//***********************Control Button Pressedbyte Control_Pressed(byte key1){once = 0;key1 = getkey(); if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0xFF; }&amp;nbsp; while(once == 1){&amp;nbsp; waiting();&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this ????&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; } }&amp;nbsp; while(once == 2){ TIE = 0x00; key1 = getkey(); temp1 = 0;&amp;nbsp; j = 0; while((temp1 &amp;lt; 9)&amp;amp;&amp;amp;(key1 == 0xFF)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = j + pow(2,temp1); for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = j;&amp;nbsp; }&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = j; }temp1++;}j=0;while(temp1 != 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = pow(2,temp1)-1 ; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = j;&amp;nbsp; }&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = j; }temp1--;if(temp1 == 0) {&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp; PTAD = 0x00;&amp;nbsp; }&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 2000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0x00; }}}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x03){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0A){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0E){&amp;nbsp;&amp;nbsp;&amp;nbsp; //TIE = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x00){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 5;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x01){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 6;&amp;nbsp;&amp;nbsp;&amp;nbsp; return temp1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp; continue; }}//**********************************GetNumberint getnumber(volatile int midi){&amp;nbsp;&amp;nbsp; volatile int midi1 = 0xFF;&amp;nbsp; once = 0;&amp;nbsp;&amp;nbsp; // Clear the number array&amp;nbsp; number[0] = 0;&amp;nbsp; number[1] = 0;&amp;nbsp; number[2] = 0;&amp;nbsp;&amp;nbsp; while(once == 0){&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this ???
&amp;nbsp; LEDFlash(midi1); //*******************************LED FLASHING&amp;nbsp; continue;&amp;nbsp; }&amp;nbsp;&amp;nbsp; if(midi == 0x0E){&amp;nbsp; temp1 = 2;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; else{&amp;nbsp;&amp;nbsp;&amp;nbsp; number[0] = midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; midi1 = number[0];&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 1;&amp;nbsp; }&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait for user to unpress button&amp;nbsp;&amp;nbsp; while(once == 1){&amp;nbsp;&amp;nbsp; LEDFlash(midi1);&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Storing Second Number&amp;nbsp; while(once == 2){&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp; if(midi == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this???&amp;nbsp;&amp;nbsp;&amp;nbsp; LEDFlash(number[0]);&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0E){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; else{&amp;nbsp;&amp;nbsp;&amp;nbsp; number[1] = midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; midi1 = midi1*10 + number[1];&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 3;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait for user to unpress button&amp;nbsp;&amp;nbsp;&amp;nbsp; while(once == 3){&amp;nbsp;&amp;nbsp; LEDFlash(number[1]);&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; once = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(once == 4){&amp;nbsp;&amp;nbsp;&amp;nbsp; midi = midinumber();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp; LEDFlash(number[1]);&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(midi == 0x0E)&amp;nbsp;&amp;nbsp;&amp;nbsp; return midi1;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp; return midi1*10 + midi;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; }int midinumber(){volatile int midi = 0xFF;PERT = 0x00;//Test Row 1PTM = PTM &amp;lt;&amp;lt; 1;PTM_PTM0 = 0x01;waiting();if(PTT_PTT0 == 1)midi = 0x01;if(PTT_PTT1 == 1)midi = 0x02;if(PTT_PTT2 == 1)midi = 0x03;//Test Row 2PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)midi = 0x04;if(PTT_PTT1 == 1)midi = 0x05;if(PTT_PTT2 == 1)midi = 0x06;//Test Row 3PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT0 == 1)midi = 0x07;if(PTT_PTT1 == 1)midi = 0x08;if(PTT_PTT2 == 1)midi = 0x09;//Test Row 4 PTM = PTM &amp;lt;&amp;lt; 1;waiting();if(PTT_PTT1 == 1)midi = 0x00;if(PTT_PTT2 == 1)midi = 0x0E;return midi; }//**************************************LED FlashLEDFlash(volatile int flash){ for(i = 0; i &amp;lt; 10000 ; i++){&amp;nbsp; PTAD = flash;&amp;nbsp; }&amp;nbsp; for(i = 0; i &amp;lt; 10000 ; i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = 0x00;}}//**************************************Set Frequencysetfreq(volatile int input){&amp;nbsp; // Verify the Midi Note Range&amp;nbsp; volatile int begin = 60;&amp;nbsp;&amp;nbsp; for(j=0;j&amp;lt;15;++j){&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; NUMBER_OF_BLACK_KEYS; ++i)&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(input == blackKeyArray[i]){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++input;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[j] = input;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++input;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;15;++i){ begin = keys[i];&amp;nbsp;&amp;nbsp; if(i==0){ freq[i] = 27.5*pow(1.059463,(begin - 21)); continue; } freq[i] = 27.5 * pow(1.059463,(begin - 21));}begin = keys[0];for(i=0;i&amp;lt;15;++i){&amp;nbsp; freq[i] = 1000000/(2*freq[i]);&amp;nbsp;&amp;nbsp; } }//**********************************Produce SOUNDvoid Produce_Sound(byte sound){ if (sound == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???&amp;nbsp; TIOS = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x40;}else if (sound == 0x0F){&amp;nbsp; TIOS = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x40;} else{while (getkey() == sound){PTAD = keys[sound];TIOS = 0x40;TIE = 0x40;playchannel_6 = freq[sound];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }}} //***************************INTERRUPTSvoid interrupt 13 ISR_Timer5(void) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TC5 += 1000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((TFLG1 != 0x40)&amp;amp;&amp;amp;(TFLG1 != 0x80))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } void interrupt 14 ISR_Timer6(void) {&amp;nbsp; TC6 += playchannel_6;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }void interrupt 15 ISR_Timer7(void) { msCount1++;&amp;nbsp; TC7 += playchannel_7;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x80;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //??? }//LED RESETLED_reset(){&amp;nbsp;&amp;nbsp; LEDFlash(0x01);&amp;nbsp; LEDFlash(0x02);&amp;nbsp; LEDFlash(0x04);&amp;nbsp; LEDFlash(0x08);&amp;nbsp; LEDFlash(0x10);&amp;nbsp; LEDFlash(0x20);&amp;nbsp; LEDFlash(0x40);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x80);&amp;nbsp; LEDFlash(0x40);&amp;nbsp; LEDFlash(0x20);&amp;nbsp; LEDFlash(0x10);&amp;nbsp; LEDFlash(0x08);&amp;nbsp; LEDFlash(0x04);&amp;nbsp; LEDFlash(0x02);&amp;nbsp; LEDFlash(0x01);&amp;nbsp; }void main(void) {volatile int key1;volatile int midi = 60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note scale[9] = {{60, 1000, 1150},{62, 1300, 1450},{64, 1600, 1750},{65, 1900, 2050},{67, 2200, 2350},{69, 2500, 2650},{71, 2800, 2950},{72, 3100, 3250},{0,0,0} };&amp;nbsp; setreg();setfreq(midi); EnableInterrupts;while(1){&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp; PTAD = (key1 + (0x03 * key1)) + 4;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp; Control_Pressed(key1);&amp;nbsp; }&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; //**************************TEMP1 == 3 PLAY SCALE&amp;nbsp; if(temp1 == 3){&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;8;i++){&amp;nbsp;&amp;nbsp; scale[i].noteNumber = freq[i];&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1 = 1000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;9;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount1 &amp;lt;= scale[i].start){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = scale[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount1 &amp;lt;= scale[i].stop){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFLG1 = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(scale[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&amp;nbsp; }//***************temp1 == 4 RECORD MODE
&amp;nbsp;&amp;nbsp; --TIE = 0x00--
&amp;nbsp;&amp;nbsp; --TIOS = 0x00--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(temp1 == 4){&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; temp = 1;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; //*****************************CLEAR RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;101;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].noteNumber = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].start = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].stop = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp; msCount = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_reset();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //*************RECORD STARTING&amp;nbsp;&amp;nbsp; while(i &amp;lt; 101){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; while(getkey() == 0xFF){&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp; (scale[i])
&amp;nbsp;&amp;nbsp; l=i;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i == 101)&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 100;&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((key1 != 0xFF)&amp;amp;&amp;amp;(key1 != 0x0F)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].start = msCount;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(getkey() == key1){&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp; temp1 = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(temp1 == 1){&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp; record[i].stop = msCount;&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].start = msCount;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; //While(i &amp;lt; 101)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i == 100){&amp;nbsp;&amp;nbsp; i++;&amp;nbsp;&amp;nbsp; record[i].noteNumber = freq[key1];&amp;nbsp;&amp;nbsp; //???
&amp;nbsp;&amp;nbsp; (scale[i])&amp;nbsp;&amp;nbsp; temp1 = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; //Temp == 4&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; while(temp1 == 1){&amp;nbsp;&amp;nbsp; midi = getnumber(midi);&amp;nbsp;&amp;nbsp; if((midi &amp;lt;= MIN_NUMBER)||(midi &amp;gt;= MAX_NUMBER)){&amp;nbsp; LED_reset();&amp;nbsp;&amp;nbsp; continue;&amp;nbsp; }&amp;nbsp;&amp;nbsp; setfreq(midi);&amp;nbsp; temp1 = 0;&amp;nbsp; }&amp;nbsp;&amp;nbsp; Produce_Sound(key1);TIOS = 0x20;TIE = 0x20;//*****************************TEMP1 == 5 PLAY BACK RECORDif(temp1 == 5){&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp == 0) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF)&amp;nbsp;&amp;nbsp; temp = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF)&amp;nbsp;&amp;nbsp; temp = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(temp1 == 5){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;l;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(record[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while((msCount &amp;lt;= record[i].stop) &amp;amp;&amp;amp; (record[i].noteNumber == 0)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((msCount &amp;lt;= record[i].stop) &amp;amp;&amp;amp; (record[i].noteNumber !=0)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(record[i].noteNumber == 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = record[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }}&amp;nbsp;&amp;nbsp;&amp;nbsp; //*****************************************temp1 == 6 PLAY DEMO&amp;nbsp;&amp;nbsp; if(temp1 == 6){demo[0].noteNumber = 1275;demo[1].noteNumber = 1136;demo[2].noteNumber = 1012;demo[3].noteNumber = 851;demo[4].noteNumber = 955;demo[5].noteNumber = 851;demo[6].noteNumber = 758;demo[7].noteNumber = 851;demo[8].noteNumber = 851;demo[9].noteNumber = 637;demo[10].noteNumber = 675;demo[11].noteNumber = 637;demo[12].noteNumber = 851;demo[13].noteNumber = 1012;demo[14].noteNumber = 1275;demo[15].noteNumber = 1136;demo[16].noteNumber = 1012;demo[17].noteNumber = 851;demo[18].noteNumber = 851;demo[19].noteNumber = 851;demo[20].noteNumber = 758;demo[21].noteNumber = 851;demo[22].noteNumber = 1012;demo[23].noteNumber = 1136;demo[24].noteNumber = 1012;demo[25].noteNumber = 1275;demo[26].noteNumber = 1136;demo[27].noteNumber = 1275;demo[28].noteNumber = 1136;demo[29].noteNumber = 1703;demo[30].noteNumber = 1136;demo[31].noteNumber = 1136;demo[32].noteNumber = 851;demo[33].noteNumber = 1012;demo[34].noteNumber = 1136;demo[35].noteNumber = 1012;demo[36].noteNumber = 0; //PTAD = msCount/100;&amp;nbsp; demo[0].start = 0; demo[0].stop = 150;for(i=1;i&amp;lt;36;i++){ demo[i].start = demo[i-1].start + 325;&amp;nbsp; }for(i=1;i&amp;lt;36;i++){ demo[i].stop = demo[i-1].stop + 225;&amp;nbsp; } msCount = 0;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;36;i++){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount &amp;lt;= demo[i].start){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xA0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0xE0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_7 = demo[i].noteNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(msCount &amp;lt;= demo[i].stop){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msCount1++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key1 = getkey();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0x0F){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp1 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //PTAD = msCount/100;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 == 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(key1 != 0xFF){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIOS = 0x60;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTAD = key1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playchannel_6 = freq[key1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; if(demo[i].noteNumber == 0){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE = 0x00;&amp;nbsp;&amp;nbsp; TIOS = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }}}}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&amp;nbsp;It is supposed to populate a Keypad array 123A,456B,789C,*0#D, with the midi note middle C and the rest of the notes in the scale.&amp;nbsp; B button is used as control mode to select either normal play, record, different starting note, and playback what was recorded.&amp;nbsp; I am using channel 6 for normal play modes and channel 7 for playing back what was recorded.&amp;nbsp; My record function should save the start time of the note, the stop time of the note, and the note number to the stack where it can be later recalled for playback.&amp;nbsp; On every entry into the record mode I try to clear what was previously recorded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:32:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-cant-figure-out-what-is-wrong/m-p/181570#M6625</guid>
      <dc:creator>RCarp</dc:creator>
      <dc:date>2020-10-29T09:32:00Z</dc:date>
    </item>
    <item>
      <title>Re: I cant figure out what is wrong</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-cant-figure-out-what-is-wrong/m-p/181571#M6626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;All global variables shared by an ISR and main() must be volatile.&lt;BR /&gt;&lt;BR /&gt;I can't even bother to explain why yet again, as every hobbyist on these boards seems to make this fundamental error.&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 May 2009 16:24:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/I-cant-figure-out-what-is-wrong/m-p/181571#M6626</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2009-05-15T16:24:43Z</dc:date>
    </item>
  </channel>
</rss>

