atmega32 için - Atmel Community
Transkript
atmega32 için - Atmel Community
ATMEGA32 İÇİN /* * frekansmetre.c * * Created: 09.02.2014 10:14:42 * Author: BERKAY */ #include <avr/io.h> #define F_CPU 1000000 #include <avr/interrupt.h> #include "lcd16.h" volatile int sayac,frekans=0; void timer1_init(){ TCCR1B=0X02; TCNT1=0; TIMSK=(1<<TOIE1); sei(); sayac=0; } ISR(TIMER1_OVF_vect){ sayac++; TCNT1=0; } ISR(INT1_vect){ frekans++; } void cont(){ PORTD^=(1<<6); gotoXy(0,1); integerToLcd(frekans); // print frequency value on 16x2 lcd frekans=0; TCNT1=0; sayac=0; } int main(void) { sayac=0; DDRD|=(1<<6); // for led DDRB=0XFF; timer1_init(); MCUCR|=(1<<ISC10)|(1<<ISC11); GICR|=(1<<INT1); lcdInit(); gotoXy(0,0); prints("Frekans metre"); gotoXy(6,1); prints("HZ"); while(1) { if (sayac>=1){ if(TCNT1>=56660){ cont(); } } } return 0; } ATMEGA 8 İÇİN /* * frekansmetre.c * * Created: 09.02.2014 10:14:42 * Author: BERKAY */ #include <avr/io.h> #define F_CPU 1000000 #include <avr/interrupt.h> #include "lcd16.h" volatile int sayac,frekans=0; void timer2_init(){ TCCR2=0X07; TCNT2=0; TIMSK=(1<<TOIE2); sei(); sayac=0; } ISR(TIMER2_OVF_vect){ sayac++; TCNT2=0; } ISR(INT0_vect){ frekans++; } void cont(){ PORTD^=(1<<7); gotoXy(0,1); integerToLcd(frekans); // print frequency value on 16x2 lcd frekans=0; TCNT2=0; sayac=0; } int main(void) { DDRD|=(1<<7); // for led DDRB=0XFF; MCUCR|=(1<<ISC00)|(1<<ISC01); GICR|=(1<<INT0); lcdInit(); gotoXy(0,0); prints("Frekans metre"); gotoXy(6,1); prints("HZ"); timer2_init(); while(1) { if (sayac>=3){ if(TCNT2>=211){ cont(); } } else{ PORTD&=~(1<<7); } } return 0; }
Benzer belgeler
Adı Soyadı - Bilecik Şeyh Edebali Üniversitesi Bilgisayar Mühendisliği
#use fast_io(a) // Port yönlendirme komutları a portu için geçerli
#use fast_io(b) // Port yönlendirme komutları b portu için geçerli
#use fast_io(c) // Port yönlendirme komutları d portu için geçe...
c# ile seri port, grafik, excel işlemleri
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Of...
PIC 16F877`nin kullanılması
gerilim referansı olarak da konfigüre edilebilmektedir (bu durumda bu bitler aynı anda
A/D çevirici olarak kullanılamazlar). İlgili yazmaçlar ve adresleri aşağıdaki gibidir.
PORTA
TRISA
ADCON1