Danke @askazo und robocat;
Hab mich für die Interrupt variante entschieden und hat auf anhieb funktioniert.

das sieht dann wie folgt aus:

Code:
void interrupt isr(void)
{ 

	GIE=0;
	


    if (RBIF)                  // Am port B hat sich etwas geändert
    {
	  
      if ((PORTB & 0b00010000) == 0b00010000)
		{
			a = a + 1;   // variable a die bei jeder high flanke um 1             
                                          // erhöht wird
		}
		
		if (a >= 15)
		{
			Blink_test = 1;
		}
   }