Auto shootter Kodak yg dikendalikan dg remote control
Posted: 19 May 2010, 23:30
berikut ini kode untuk kamera auto shootter yg dikendalikan dengan remote control
saat ini sudah saya pakai di kamera Kodak CX7430
secara teory juga bisa diterapkan pada semua merek kamera
sebelumnya saya ucapkan terima kasih kepada pak Jeny
atas bantuannya
skema menyusul
saat ini sudah saya pakai di kamera Kodak CX7430
secara teory juga bisa diterapkan pada semua merek kamera
sebelumnya saya ucapkan terima kasih kepada pak Jeny
atas bantuannya
Code: Select all
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7 beta 5 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : kodak kamera auto shootter
Version : v2
Date : 5/4/2010
Author : Muhammad Thoha
Company : Seribubintang
Comments:
kodak kamera auto shootter ini dekendalikan dg RC pwm 1 - 2 mili detik
sinyal pwm 1.7 mili detik auto shootter aktif
sinyal pwm kurang dari 1.7 mili detik auto shootter tidak aktif
Chip type : ATtiny2313
Clock frequency : 8.003000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313.h>
#include <delay.h>
int timer1;
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
// State6=T State5=T State4=T State3=T State2=T State1=0 State0=0
PORTD=0x00;
DDRD=0x03;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
#asm("sei")
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=1;
DDRD.0=0;
DDRD.1=0;
DDRD.2=0;
DDRD.3=0;
while (1)
{
while (!PIND.3){;}
timer1=0;
while (PIND.3){timer1++;delay_us(1);}
if (timer1>700)
{
PORTD.2=1; //LED on = shooter aktif
PORTD.0=1; //fokus off
PORTD.1=1; //shoot off
delay_ms(3000);
PORTD.0=0; //fokus on
PORTD.1=1; //shoot off
delay_ms(1000);
PORTD.0=0; //fokus on
PORTD.1=0; //shoot on
delay_ms(1500);
PORTD.2=0; //LED off = shooter tidak aktif
};
}
}
skema menyusul