Well I have learned a lot today about the shaft encoder, and it is 
working for the most part. I use a 1ms interrupt to read the encoder 
inputs. I must have 3 readings the same to set the encoder valid flag. 
That's a fairly short debounce because when you spin the knob the 
transitions are 5ms apart. So this works pretty reliably. Now from the 
spec and my observations, I am capturing 60 transitions per revolution 
and there are 30 detents per revolution. That makes for an interesting 
situation :-) I was hoping to make each detent bump the freq digit by 1. 
But because of the mechanics you can get 1 3 or 2 2 transitions per 
detent. If I choose 1 revolution for ten increments of the frequency 
digit it is 3 detents and 6 transitions. Well I'm learning :-) I'll 
figure it out tomorrow :-)


        if ( Flag.encoder_valid )    {
     
            if ( new_encoder != old_encoder )    {
                 
                if ( ( ( new_encoder >> 1 ) ^ old_encoder ) & 0x01 )    
delta_freq    =     10;
             
                    else                        delta_freq    =    
-10;             
 
//                if ( new_encoder ^ old_encoder == 0x03 )        
delta_freq =   0;
 
                old_encoder = new_encoder;
 
                Flag.freq_change    =    1;
 
                }
 
            }


and

//===================================================================
 
char    old_encoder, new_encoder;
 
 
__interrupt void isrVmtim(void)    {
 
    static char    counter = 0;
     
        char    temp;
 
    MTIMSC_TRST    =    1;
     
    temp    =    PTBD & 0x03;     
 
    if ( temp == new_encoder ) ++counter;
     
    else    {
     
        new_encoder        =    temp;
         
        Flag.encoder_valid    =    0;
     
        counter                =    0;
         
        }     
     
    if ( counter >= 2 )    {
 
        Flag.encoder_valid    =    1;
 
        counter            =    2;         
     
        }
 
    }
     
//===================================================================
   

-- 
 Regards,
 John
 
=========================================================
email:     [EMAIL PROTECTED]
photos:    http://www.flickr.com/photos/k5jhf/sets/
videos:    http://www.youtube.com/profile?user=k5jhf
files:     http://briefcase.yahoo.com/[EMAIL PROTECTED]
web page:  http://www.geocities.com/[EMAIL PROTECTED]
call sign: K5JHF
=========================================================

Reply via email to