ATMEGA 328P

Başlatan crazy, 07 Mayıs 2016, 13:09:36

crazy

Merhaba  OCR_advance[] değerini  OCR1A  yerine PORTD0  pinine nasıl yükleyebilirim.
#include <avr/io.h>
#include <avr/interrupt.h>
#define STATE_COUNT (sizeof(OCR_advance)/sizeof(uint16_t ))
  volatile uint8_t state = 0;
  const   uint16_t  OCR_advance[] = {200,50,50,50,50,50,50,50,450,200};
  
  ISR(TIMER1_COMPA_vect)
  {
	 OCR1A  += OCR_advance[state];
	  if (++state >= STATE_COUNT)
	  state = 0;
  }

berkay_91

#1
PORTD0=OCR_advance satirını for döngüsüne sokarak veya kullanacağınız fonksiyonda i değişkenin artmasını sağlayarak yapabilirsiniz ama bu değerin max. 8 bit(255) büyüklüğünde olması lazım aksiPORTD0 a değerin 255 e bölümünden kalan yüklenecektir...