<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forums.obdev.at/app.php/feed/topic/8294" />

	<title>Objective Development Forums</title>
	
	<link href="https://forums.obdev.at/index.php" />
	<updated>2013-02-18T20:04:04+02:00</updated>

	<author><name><![CDATA[Objective Development Forums]]></name></author>
	<id>https://forums.obdev.at/app.php/feed/topic/8294</id>

		<entry>
		<author><name><![CDATA[newbie7]]></name></author>
		<updated>2013-02-18T20:04:04+02:00</updated>

		<published>2013-02-18T20:04:04+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=8294&amp;p=24775#p24775</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=8294&amp;p=24775#p24775"/>
		<title type="html"><![CDATA[mod c64key]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=8294&amp;p=24775#p24775"><![CDATA[
hello everyone!<br /><br />i'm making keyboard using v-usb. (row 16, col8)<br /><br />generally source base c64key written row-&gt;col.<br />but my pcb design is col-&gt;row. that has few problem.<br /><br /><br /><strong class="text-strong">&lt;main.c - c64key&gt; : can't load data</strong><br /><br /><div class="codebox"><p>Code: </p><pre><code>for (row = 0; row &lt; NUMROWS; ++row) {<br />data = modmask&#91;row &amp; 7&#93;;<br />switch (row) {<br />   case 0x0 ... 0x7:<br />      DDRC  = 0x00;<br />      PORTC = 0xFF;<br />      // Scan on A<br />      DDRA = data;<br />      PORTA = ~data;<br /><br />      break;<br />   case 0x8 ... 0xF:<br />      DDRA  = 0x00;<br />      PORTA = 0xFF;<br />      // Scan on C<br />      DDRC = data;<br />      PORTC = ~data;<br />      break;<br />}<br />_delay_us(30);<br />data = ~PINB;<br />}<br /><br />...........................<br />   /* Process all rows for key-codes */<br />   for (row = 0; row &lt; NUMROWS; ++row) {<br />      /* Anything on this row? - if not, skip it */<br />      if (0xFF == bitbuf&#91;row&#93;) { continue; }<br /><br />      /* Restore buffer */<br />      data = bitbuf&#91;row&#93;;<br /><br />      for (col = 0, mask = 1; col &lt; 8; ++col, mask &lt;&lt;= 1) {<br />         /* If no key detected, jump to the next column */<br />         if (data &amp; mask) { continue; }<br /><br />         /* Read keyboard map */<br />         key = pgm_read_byte(&amp;keymap&#91;row&#93;&#91;col&#93;);<br />         activeRows |= modmask&#91;row&#93;;<br />         activeCols |= modmask&#91;col&#93;;<br /><br />}</code></pre></div><br /><br /><br /><strong class="text-strong">take a look my source</strong><br /><strong class="text-strong">&lt;main.c - my mod&gt; : can load data</strong><div class="codebox"><p>Code: </p><pre><code>for (row = 0; row &lt; NUMROWS; ++row) {<br />data = modmask&#91;row &amp; 7&#93;;<br />switch (row) {<br />   case 0x0 ... 0x7:<br />      DDRC  = 0x00;<br />      PORTC = 0xFF;<br /><br />      // Scan on A<br />      DDRB = data;<br />      PORTB = ~data;<br />                _delay_us(30);<br />                data = ~PINA;<br />      break;<br />   case 0x8 ... 0xF:<br />      DDRA  = 0x00;<br />      PORTA = 0xFF;<br /><br />      // Scan on C<br />      DDRB = data;<br />      PORTB = ~data;<br />                _delay_us(30);<br />                data = ~PINC;<br />      break;<br />       }<br />}<br />...................................<br />   /* Process all rows for key-codes */<br />   for (row = 0; row &lt; NUMROWS; ++row) {<br />      /* Anything on this row? - if not, skip it */<br />      if (0xFF == bitbuf&#91;row&#93;) { continue; }<br /><br />      /* Restore buffer */<br />      data = bitbuf&#91;row&#93;;<br /><br />      for (col = 0, mask = 1; col &lt; 8; ++col, mask &lt;&lt;= 1) {<br />         /* If no key detected, jump to the next column */<br />         if (data &amp; mask) { continue; }<br /><br />         /* Read keyboard map */<br />         key = pgm_read_byte(&amp;keymap&#91;row&#93;&#91;col&#93;);<br />         activeRows |= modmask&#91;row&#93;;<br />         activeCols |= modmask&#91;col&#93;;<br /><br />}</code></pre></div><br /><br /><br /><br />c64key source : can't load data.<br />my mod source : can load data but crazy matrix.<br /><br />cuz c64key matrix design is row-&gt;col.<br /><br /><br />what should i do to solve?<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=19542">newbie7</a> — Mon Feb 18, 2013 8:04 pm</p><hr />
]]></content>
	</entry>
	</feed>
