Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Frieder Ferlemann
01/19/10 02:39
Read: 234 times
Old Europe


 
#172586 - table lookup
Responding to: Yash Chitalia's previous message
The lookup table together with the IRQ routine allows you to set Port1 with its 8 output pin (P1_0, P1_1, P1_2, ... P1_7) to any value with a time resolution of 0.1ms and a cyclic repetition of the pattern every 18 ms.

Maybe it helps to think of it as a kind of a (arbitrary) binary function generator with 8 outputs, fixed 0.1ms resolution and fixed pattern length of 180 entries.

Taking
servo(12,10,15,14);
of your posted code as example.

You'd want to setup the table so it gives you

0x0f,  /* 0.0 ms: pin0=1, pin1=1, pin2=1, pin3=1, pin4..7= 0 */
0x0f,  /* 0.1 ms:                              same          */
0x0f,
0x0f,
0x0f,

0x0f,
0x0f,
0x0f,
0x0f,
0x0f,

0x0b,  /* 1.0 ms: pin0=1, pin1=1, pin2=0, pin3=1, pin4..7= 0 */
0x0b,
0x03,  /* 1.2 ms: pin0=1, pin1=1, pin2=0, pin3=0, pin4..7= 0 */
0x03,
0x02,  /* 1.4 ms: pin0=0, pin1=1, pin2=0, pin3=0, pin4..7= 0 */

0x00,  /* 1.5 ms: pin0=0, pin1=0, pin2=0, pin3=0, pin4..7= 0 */
0x00,
0x00,
...    /* another 162 zero's following here */

 

when the table contents are read and fed to P1 with:
P1 = table_P1_over_time [ ms_tenth_countdown ];

(Note, I used a countdown to index the table so the compiler could later make use of the compact djnz instruction)

List of 41 messages in thread
TopicAuthorDate
Controlling multiple servo motors      Yash Chitalia      01/17/10 14:47      
   executing code takes time      Erik Malund      01/17/10 15:27      
      PWM code      Steve M. Taylor      01/17/10 15:35      
         Thanks...now, about the PCA timer..      Yash Chitalia      01/17/10 16:06      
   If SDCC Then Keil      Michael Karas      01/17/10 16:15      
      PWM IRQ code in C, bitops, 45 byte      Frieder Ferlemann      01/18/10 05:19      
         Optimization having no effect.      Yash Chitalia      01/18/10 11:36      
      PWM IRQ code in C, lookup table, 32 byte      Frieder Ferlemann      01/18/10 05:29      
         I haven't understood the table lookup concept very well...      Yash Chitalia      01/19/10 00:55      
            table lookup      Frieder Ferlemann      01/19/10 02:39      
         PWM IRQ code in C, lookup table, 30 byte      Frieder Ferlemann      01/19/10 03:07      
            Compiler specifics      Andy Neil      01/19/10 04:35      
               absolutely-locating xdata at 256 byte boundary      Frieder Ferlemann      01/19/10 05:00      
                  I see.      Andy Neil      01/19/10 06:34      
            An example code..      Yash Chitalia      01/20/10 02:20      
               Keil: Specifics and non-specifics      Andy Neil      01/20/10 02:50      
                  Not really working...      Yash Chitalia      01/20/10 03:55      
                     Enough power?      Per Westermark      01/20/10 09:45      
                        RE: running 32 servo motors      Andy Neil      01/20/10 10:34      
      The chip sounds perfect...      Yash Chitalia      01/18/10 11:47      
         not worth it      Erik Malund      01/18/10 12:10      
            Servo control will become difficult then...      Yash Chitalia      01/18/10 12:42      
               output      Andy Peters      01/18/10 12:52      
               HCT chips have ...      Erik Malund      01/18/10 14:12      
                  Eval a concept with a single PCA and 3:8 HCT multiplexer?      Frieder Ferlemann      01/18/10 14:36      
               Check their website      Andy Neil      01/18/10 14:44      
                  Here is the code...      Yash Chitalia      01/18/10 15:28      
                     "sbit MTRS=P2^0;" is not OK here      Frieder Ferlemann      01/18/10 16:11      
                        Keil syntax?      Andy Neil      01/18/10 17:36      
                           "#define" not working.."sbit" works      Yash Chitalia      01/18/10 23:32      
                              Yes, you were correct originally!      Andy Neil      01/19/10 01:22      
            Seconded      Andy Neil      01/18/10 12:45      
   Servo_0.1.zip      Murray R. Van Luyn      01/18/10 15:02      
      links      James Hinnant      02/18/10 21:10      
   Eventually feed the guys at http://servomaster.sf.net ?      Frieder Ferlemann      01/18/10 15:12      
      servomaster.sf.net FLOSS      James Hinnant      02/04/10 11:48      
   Maybe of some use...      James Bowmaster      02/10/10 14:40      
      Whoops... found a bug      James Bowmaster      02/10/10 16:35      
         What bug?      Andy Neil      02/10/10 16:41      
            Bug      James Bowmaster      02/10/10 18:47      
   Improved version uploaded      James Bowmaster      02/12/10 21:26      

Back to Subject List