Pages: [1]   Go Down
Author Topic: Newbee and loads of doubts please see  (Read 435 times)
0 Members and 1 Guest are viewing this topic.
swansea
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

there is scroller attached for which i am using this i am also attaching the schematic design of the circuit
 please help  

this is the basic program i am using to get the leds glow with the moment of the scroller
the input is more like shown below ( has a small phase difference

pin2 ==> __|-|__
pin4 ==> __|-|__

but using this program i am able to capture the the changes and the leds glows
like if i hav led A and led B
so if i have the above input the pins will glow like
like A first and B
and then A and B both r ON
and then just B is ON
what i want is
for the above input that if i get pin2 i want to ignore pin4 and in case the input is lik ethis one
pin2 ==> __|-|__
pin4 ==> __|-|__
i want to ignore the pin2
and i want to use the counter in the program to count the number of inputs that i am getting from the scroller
please help me put


Code:
#include <avr/io.h>

int main()
{
   uint8_t i;

   PORTB= 0x00;

/* PB0, PB1 & PB3 are outputs; PB2 & PB4 are scroller inputs */
   DDRB = (1<<PB3) | (1<<PB1) | (1<<PB0);

   PORTB = 0;

   for(;;) {
      i = PINB;

      if ( (i & (1<<PB2)) != 0) {
         PORTB |= (1<<PB0);
      }
      else {
         PORTB &= ~(1<<PB0);
      }

      if ( (i & (1<<PB4)) != 0) {
         PORTB |= (1<<PB1);
      }
      else {
         PORTB &= ~(1<<PB1);
      }
      _delay_us(100); /* wait for a while */

   }
}

in my mind i had more like a truth table to work on but not able to impliment it
like the input is more like
up ==> 001100
down=> 000110
and in this case i want to ignore the input at the down and send only one out put


pin2 ==> __|-|__
pin4 ==>  __|-|__ for upward moment
if this is the input more like
01100
00110

pin2 ==>  __|-|__
pin4 ==> __|-|__ for downward moment
if this is the input more like
00110
01100

i just want to capture the change in the bit at the signal
and which ever changes first i want to pick that one and niglect the other one

it was suggested by Cliff to use ISR
but i am not able to understand how to intiate this interrupt
if someone can help please

Logged

Pages: [1]   Go Up
Jump to: