<?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>CodeWarrior for MCUのトピックRe: LC60 keyboard interrupt</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186728#M6507</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : C1815: ucKey_press not declared (or typename)&lt;/P&gt;&lt;P&gt;main.c line 35&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : C1815: P_ucKey_press not declared (or typename)&lt;/P&gt;&lt;P&gt;main.c line 35&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Warning : C1801: Implicit parameter-declaration for 'LED1_turnOn'&lt;/P&gt;&lt;P&gt;main.c line 37&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Warning : C1420: Result of function-call is ignored&lt;/P&gt;&lt;P&gt;main.c line 37&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : Compile failed&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Jun 2009 16:04:57 GMT</pubDate>
    <dc:creator>birdbird</dc:creator>
    <dc:date>2009-06-02T16:04:57Z</dc:date>
    <item>
      <title>LC60 keyboard interrupt</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186726#M6505</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello i m doing a proj on lc60 that requires me to do a programme on keyboard interrupt. i keep getting errors on my codes. Can anyone point out my mistake? Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include &amp;lt;MC9S08LC60.h&amp;gt;&lt;BR /&gt;#include "derivative.h"&lt;BR /&gt;#include &amp;lt;stdtypes.h&amp;gt;&lt;BR /&gt;#include "LCD.h"&lt;BR /&gt;#include "TPM1.h"&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include "Delays.h"&lt;BR /&gt;//#include "StopModes.h"&lt;BR /&gt;//#include "Timeout.h"&lt;BR /&gt;//#include "ADC.h"&lt;BR /&gt;#include "KBInotes.h"&lt;/P&gt;&lt;P&gt;unsigned char ucKey_press, ucKey_press2,row_press, column_press, i=1, P_ucKey_press;&lt;BR /&gt;unsigned char KeyStore[6]={0,0,0,0,0,0}; //Test&lt;BR /&gt;unsigned char *str, key_entered= FALSE;&lt;/P&gt;&lt;P&gt;// KEYPAD&lt;BR /&gt;/////////////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;void KBIinit (void){&lt;BR /&gt;&amp;nbsp; KBI1SC_KBIE = 0; //clear keyboard interrupt&lt;BR /&gt;&amp;nbsp; KBI1ES = 0; //select falling edge&lt;BR /&gt;&amp;nbsp; PTADD = 0X78; //initialize Port A(0,1,2) as inputs, Port A(3,4,5,6) as output&lt;BR /&gt;&amp;nbsp;PTAPE = 0X07; //Pull up enable for bit 0,1,2&lt;BR /&gt;&amp;nbsp;KBI1PE = 0X07; //Enables pin 0-2&lt;BR /&gt;&amp;nbsp;KBI1SC_KBACK = 1; //Clear interrupt&lt;BR /&gt;&amp;nbsp; KBI1SC_KBIE = 1; //Keyboard interrupt enabled&lt;BR /&gt;&amp;nbsp; PTAD=0x00;&amp;nbsp; // set other output to low&lt;BR /&gt;&amp;nbsp; KBI1SC_KBIMOD = 0; //Keyboard detects edges only&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void Column_Read(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (PTAD_PTAD0 == 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; column_press = 1;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if (PTAD_PTAD1 == 0)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; column_press = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if (PTAD_PTAD2 == 0)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; column_press = 3;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; void Row_Read(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTADD = 0X07; //initialize Port A(3,4,5,6) as inputs, Port A(0,1,2) as output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; PTAPE = 0X78; //Pull up enable for bit 3,4,5,6&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; KBI1PE = 0X78; //Enables pin 3-6&amp;nbsp;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD4 = 1;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD0 = 0;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD1 = 0;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD2 = 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; if (PTAD_PTAD3 == 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_press = 1;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if (PTAD_PTAD3 == 1)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_press = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTADD = 0X78; //initialize Port A(0,1,2) as inputs, Port A(3,4,5,6) as output&lt;BR /&gt;&amp;nbsp; PTAPE = 0X07; //Pull up enable for bit 0,1,2&lt;BR /&gt;&amp;nbsp; KBI1PE = 0X07; //Enables pin 0-2&lt;BR /&gt;&amp;nbsp; PTAD_PTAD3 = 0;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD4= 0;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD5= 0;&lt;BR /&gt;&amp;nbsp; PTAD_PTAD6=0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void KBI_Read (void)&lt;BR /&gt;{&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //declaration of 2 dimensional array&lt;BR /&gt;&amp;nbsp; static char KBI_Read_Data[3] = {{'1'},{'2'},{'3'}};&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Column_Read();&lt;BR /&gt;&amp;nbsp; Row_Read();&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; ucKey_press = KBI_Read_Data[column_press - 1];&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; key_entered= TRUE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;unsigned char KBI_Read2(void){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for passing back to BMI prog as unsigned char fn.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key_entered = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!key_entered);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ucKey_press2=ucKey_press;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key_entered = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;return ucKey_press2;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void Keypad_Recall_Display(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //declaration&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char First_Digit=0, Second_Digit=0, Third_Digit=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char Fourth_Digit=0, Fifth_Digit=0, Sixth_Digit=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; First_Digit&amp;nbsp; = KeyStore[0];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Second_Digit = KeyStore[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Third_Digit&amp;nbsp; = KeyStore[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fourth_Digit = KeyStore[3];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fifth_Digit&amp;nbsp; = KeyStore[4];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sixth_Digit&amp;nbsp; = KeyStore[5];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCDPutChar(First_Digit, 1);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;LCDPutChar(Second_Digit, 2);&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCDPutChar(Third_Digit, 3);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;LCDPutChar(Fourth_Digit, 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCDPutChar(Fifth_Digit, 5);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;LCDPutChar(Sixth_Digit, 6);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;//======================Keypad interrupt=========================&lt;BR /&gt;interrupt VectorNumber_Vkeyboard1 void KeypadInterrupt (void){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;extern unsigned int TimerTable[10], TimerFlag[10];&lt;BR /&gt;extern byte bADC_Sample;&lt;/P&gt;&lt;P&gt;//STOP3_MODE_EXIT();&lt;BR /&gt;//TimeOut_init();&lt;BR /&gt;KBI_Read();&amp;nbsp; // check the key pressed&lt;BR /&gt;KBI1SC_KBACK = 1; // Acknowledge Interrupt and Clear flag&lt;/P&gt;&lt;P&gt;if ((ucKey_press != P_ucKey_press) || (TimerFlag[0] == TRUE)){&lt;BR /&gt;&amp;nbsp; //j=i-1;&amp;nbsp; //Test&lt;BR /&gt;&amp;nbsp; //KeyStore[j] = ucKey_press; //Test&lt;BR /&gt;&amp;nbsp; LCDPutChar(ucKey_press, i); // accept key entry&lt;BR /&gt;&amp;nbsp; P_ucKey_press = ucKey_press;&lt;BR /&gt;&amp;nbsp; i++;&lt;BR /&gt;&amp;nbsp; if (i &amp;gt;=9)i=1;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; TimerTable[0]=320;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set debounce time&lt;BR /&gt;&amp;nbsp; TimerFlag[0]=FALSE;&lt;BR /&gt;&amp;nbsp; if(TimerFlag[0]==FALSE){&lt;BR /&gt;&amp;nbsp; bADC_Sample =&amp;nbsp; TRUE;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;}//endif&lt;BR /&gt;}//end interruptKBI&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jun 2009 12:59:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186726#M6505</guid>
      <dc:creator>birdbird</dc:creator>
      <dc:date>2009-06-02T12:59:20Z</dc:date>
    </item>
    <item>
      <title>Re: LC60 keyboard interrupt</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186727#M6506</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;What is "errors in codes" more specifically?&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jun 2009 15:58:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186727#M6506</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2009-06-02T15:58:40Z</dc:date>
    </item>
    <item>
      <title>Re: LC60 keyboard interrupt</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186728#M6507</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : C1815: ucKey_press not declared (or typename)&lt;/P&gt;&lt;P&gt;main.c line 35&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : C1815: P_ucKey_press not declared (or typename)&lt;/P&gt;&lt;P&gt;main.c line 35&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Warning : C1801: Implicit parameter-declaration for 'LED1_turnOn'&lt;/P&gt;&lt;P&gt;main.c line 37&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Warning : C1420: Result of function-call is ignored&lt;/P&gt;&lt;P&gt;main.c line 37&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : Compile failed&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jun 2009 16:04:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186728#M6507</guid>
      <dc:creator>birdbird</dc:creator>
      <dc:date>2009-06-02T16:04:57Z</dc:date>
    </item>
    <item>
      <title>Re: LC60 keyboard interrupt</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186729#M6508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Are you certain the errors are for the file you posted and not some other file in the project?&lt;BR /&gt;&lt;BR /&gt;ucKey_press and P_ucKey_press are indeed declared.&lt;BR /&gt;The other references must be in some other file in the project.&lt;BR /&gt;&lt;BR /&gt;You can get these warnings if you have missing semicolons etc in h-files, or if you have declared variables in h-files. It is hard to tell what's causing the error.&lt;BR /&gt;&lt;BR /&gt;Apart from that, I also noticed a severe bug: the variables shared between main and the interrupt are not declared as volatile. The bug might cause your program to behave completely randomly when any kind of compiler optimization is active.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jun 2009 20:31:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/LC60-keyboard-interrupt/m-p/186729#M6508</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2009-06-02T20:31:48Z</dc:date>
    </item>
  </channel>
</rss>

