|  | roboforum.ruТехнический форум по робототехнике. |  | 

  
  if (PINC.0 == 0)
  {
   PORTD.0 = 1;
  }
else
{
PORTD.0 = 0;
}

Romikgy писал(а):
- Код: Выделить всё • Развернуть
if (PINC.0 == 0)
{
PORTD.0 = 1;
}
else
{
PORTD.0 = 0;
}
так не ?



#include <ioavr.h>
#include <intrinsics.h>
#include <iom8.h>
int main( void )
{
  PORTC=(0<<PC0);
  DDRD=255;
  TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);
  TCNT1H=0xF0;
  TCNT1L=0x6F; //значение 61551
  //TIMSK=0x04;
  TIMSK=(1<<TICIE1);
  
 __enable_interrupt();
  
  while(1)
  {
    PORTD = (1<<1);
  }
}
#pragma vector = TIMER1_OVF_vect
__interrupt void flashing(void)
{
  //if ((PINC & (1 << PC0)) == 1)
  //{
    PORTD = (1<<PD0);
  //}
}
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);
rig писал(а):так что там получится после такой команды непонятно
- Код: Выделить всё • Развернуть
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);

TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);делал так:
~(1<<CS11)
на выходе в разряде CS11 будет нолик а все остальные единички.
но нолик прилеплять надо через & лог умножение

Lockdog писал(а):Я хочу чтобы таймер через каждые 0,5 сек вызывал прерывание и в нём проверял состояние ножки и если оно = 1, то выполнять какю-либо команду




 Конечно, всё работает, сигналы переключает, без глюков. Я говорю о том, что у меня в протеусе прерывания не работают.
 Конечно, всё работает, сигналы переключает, без глюков. Я говорю о том, что у меня в протеусе прерывания не работают.


Вернуться в Новичкам или основы основ роботостроения.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0