본문 바로가기

ATMEGA128

(10)
ATmega128 - USART 패킷 단위 소스코드. #define headerData 0xff unsigned char checkSum = 0; Transmit() { checkSum = (char)(data1 + data2 + data3); printf(headerData); printf(data1); printf(data2); printf(data3); printf(checkSum);} unsigned char rxdDataBuffer = 0;unsigned char rxdDataState = 0;unsigned char rxdDataPacketCount = 0;unsigned char rxdDataPacket[6];unsigned char rxdDataError = 0;unsigned char rxdDataBufferCheckSum = 0;unsig..
ATmega128 - 리모콘 수신 프로그램 (업그레이드). #define F_CPU 16000000UL #include #include #include #include #define CLK 16000000#define PRESCALE 256#define TIME_US 100#define TIMER0_CNT (CLK*TIME_US/(256*1000000)) char _remocon_counter,_save_remocon,_flg_remocon;char bit_input;char bounce_check = 0; unsigned char _remocon_custom,_remocon_custom_2;unsigned char _remocon_data,_remocon_data_2; int _counter_remocon; void port_init() { DDRA = 0xf..
ATmega128 - PWM 제어 예제. #define F_CPU 16000000UL #include #include #include void port_init() { DDRA = 0xff; PORTA = 0x00; DDRB = 0xff; PORTB = 0x00; DDRC = 0xff; PORTC = 0x00; DDRD = 0xff; PORTD = 0x00; DDRE = 0xff; PORTE = 0x00; DDRF = 0xff; PORTF = 0x00; DDRG = 0xff; PORTG = 0x00;} int main(void) { unsigned char i = 0; unsigned char j = 0; _delay_ms(500); port_init(); // FOC0:0, WGM00:1, COM01:1, COM00:0, WGM01:0, CS..
ATmega128 - DS1620 디지털 온도계 동작 소스. #define dir_pin DDRB#define out_pin PORTB#define in_pin PINB #define dq_out_set (dir_pin=0xff)#define dq_in_set (dir_pin=0xfe) #define clk_conv_low (out_pin&=0xfd)#define clk_conv_high (out_pin|=0x02)#define reset_low (out_pin&=0xfb)#define reset_high (out_pin|=0x04) #define ds1620_comm_read_temp (0xaa)#define ds1620_comm_write_th (0x01)#define ds1620_comm_write_tl (0x02)#define ds1620_comm_read..
ATmega128 - DS1302 RTC(Real Time Clock) 동작 소스. #define dir_flow_set DDRC #define out_flow_pin PORTC #define in_flow_pin PINC #define data_out_set (dir_flow_set=0xFF, out_flow_pin=0xFB) #define data_in_set (dir_flow_set=0xFD) #define ds1302_reg_second (0x80) #define ds1302_reg_minute (0x82) #define ds1302_reg_hour (0x84) #define ds1302_reg_date (0x86) #define ds1302_reg_month (0x88) #define ds1302_reg_day (0x8a) #define ds1302_reg_year (0x8c)..
ATmega128 - COM26T2844VTX 단순 동작 및 초기화 소스. typedef unsigned char U08;typedef unsigned int U16; #define Control_Bus PORTA#define Data_Upper PORTC#define Data_Lower PORTF #define MAX_PIXEL 96000#define X_MAX_PIXEL 400#define Y_MAX_PIXEL 240 #define BLACK 0x0000#define WHITE 0xFFFF#define YELLOW 0xFFE0#define RED 0xF800#define GREEN 0x07E0#define BLUE 0x001F#define CYAN 0x07FF#define MAGENTA 0xF81F #define CSB_HIGH (Control_Bus |= 0x01)#def..
ATmega128 - 16x2, 20x4 공용 CLCD 동작 소스 #define clcd_bus PORTC#define enable (clcd_bus |= 0x04)#define disable (clcd_bus &= 0xFB) void clcd_inst(unsigned char Data) { clcd_bus = Data & 0xF0; enable; disable; clcd_bus = (Data
ATmega128 - 128x64 GLCD 문자 표시 동작 소스. /* 5x7 ASCII Character Font */ const unsigned char GLCD_Font[95][5] = { {0x00, 0x00, 0x00, 0x00, 0x00}, // 0x20 Space {0x00, 0x00, 0x4F, 0x00, 0x00}, // 0x21 ! {0x00, 0x07, 0x00, 0x07, 0x00}, // 0x22 " {0x14, 0x7F, 0x14, 0x7F, 0x14}, // 0x23 # {0x24, 0x2A, 0x7F, 0x2A, 0x12}, // 0x24 $ {0x23, 0x13, 0x08, 0x64, 0x62}, // 0x25 % {0x36, 0x49, 0x55, 0x22, 0x50}, // 0x26 & {0x00, 0x05, 0x03, 0x00, 0x0..