Таймер 2 на ардуино уно и мега

кто может подсказать как переписать этот код с уно ,чтобы работало на мега?спасибо

  if(PORTD & 0b00000100){PORTD &= 0b11111011;}//step high на 2-м пине
  else                  {PORTD |=   0b00000100;}//step low
  if(PORTD & 0b00100000){PORTD &= 0b11011111;}//step high на 5-м пине
  else                  {PORTD |=   0b00100000;}//step low
}```

Если я правильно понял вопрос, то так:

if(PORTE & 0b00010000){PORTE &= 0b11101111;}//step high на 2-м пине
else                  {PORTE |=   0b00010000;}//step low
if(PORTE & 0b00001000){PORTE &= 0b11110111;}//step high на 5-м пине
else                  {PORTE |=   0b00001000;}//step low
1 лайк

спасибо

Научитесь читать документацию !

Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction
can be used to toggle one single bit in a port.

И это для всех AVR.

Если бы он сам это писал - то сам бы и на мегу переделал бы… ))
А я просто оставил в существующем формате…

Не для всех, к сожалению :frowning:

Конкретизируйте ! Мне что то не попадались, те что не умеют “тогглить” …

Интересно, при чем тут Таймер2 ?

А кто ж его знает ))))

Ну, например, ATmega32A и ATmega128

Таких в железе нет у меня, но в Proteus ATmega32 (с А там нету) и ATmega128 “тогглятся”!

  SBI DDRB,PB0
l:
  SBI PINB,PB0
  RJMP l

У меня зато есть.

Ни разу не пробовал, но это вопросы к протеусу, а не ко мне.

Даташиты: ATmega32A, Atmega128