검색결과 리스트
ATmega128에 해당되는 글 2건
- 2009.01.28 마이크로마우스 Jina의 캐릭터 LCD(LC1621) 제어 소스 공개
- 2007.05.05 jINa 완성기념 스샷~ 2
글
Hardware 2009. 1. 28. 13:11마이크로마우스 Jina의 캐릭터 LCD(LC1621) 제어 소스 공개
2007년에 만들었던 프로젝트 소스들이 다 날아간걸로 생각하고 있었는데, 어느분의 OCR관련 메일을 계기로 백업해두었던 DVD, CD를 모두 뒤져 보고 마이크로마우스 관련 소스를 다시 찾게 되었다.
예전에 LC1621의 소스를 요청하셨던 분이 계셨는데 시간이 많이 지났으니 해결하셨으리라 생각하지만, 이제 시작하는 다른 분들에게 도움이 됐으면 하는 바람에서 소스를 올린다.
fiaavr_def.h : 포트별 연결된 정보와 기본 정의를 담고 있다.
[code]
/**
@file fiaavr_def.h
@date 2007/3/7
@author 이근호(fiadot@gmail.com)
@brief Atmega128 개발용 공통 헤더 헤더
*/
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.8d Professional
Automatic Program Generator
?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : jINa
Version : 1.2.0
Date : 2007-03-04
Author : LEE GUNHO
Company :
Comments: Started at 2007.1.7
Chip type : ATmega128
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 1024
*****************************************************/
#ifndef __FIAAVR_DEF_H__
#define __FIAAVR_DEF_H__
///////////////////////////////////////////////////////////
// [Ports Information]
///////////////////////////////////////////////////////////
/*
Port A
0 - (LCD)RS
1 - (LCD)RW
2 - (LCD)E
3 - (부저)
4 - (LCD)DB4
5 - (LCD)DB4
6 - (LCD)DB4
7 - (LCD)DB4
Port B
0 -
1 - (ISP) SCK
2 - (ISP) MOSI - 확실치 않음 --;; 회로보고 검증해봐!
3 - (ISP) MISO
4 -
5 -
6 -
7 -
Port C
0 - (MotorL) A B A' B' 2 0 3 1
1 - (MotorL)
2 - (MotorL)
3 - (MotorL)
4 - (MotorR) A B A' B' 6 4 7 5
5 - (MotorR)
6 - (MotorR)
7 - (MotorR)
Port D
0 -
1 -
2 -
3 -
4 - (초음파1) Triger Pulse 앞
5 - (초음파2) Triger Pulse 우 (위에서 봤을때)
6 - (초음파3) Triger Pulse 좌
7 -
Port E
0 - 테스트용 LED
1 -
2 - (블루투스)RX1
3 - (블루투스)TX1
4 - (초음파1) Echo Pulse - 인터럽트 4 앞
5 - (초음파2) Echo Pulse - 인터럽트 5 우 (위에서 봤을때)
6 - (초음파3) Echo Pulse - 인터럽트 6 좌
7 -
Port F (ADC)
0 - (가스센서) ADC0
1 - (온도센서) ADC1
2 -
3 -
4 -
5 -
6 -
7 -
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
// Boolean
#define FALSE 0
#define TRUE 1
// 테스트 LED ON, OFF
#define DEBUG_LED_ON PORTF.1 = 1; // LED On
#define DEBUG_LED_OFF PORTF.1 = 0;
// 부저 ON,OFF
#define SPEAKER_ON //PORTD.5 = 1; PORTD.6 = 1;
#define SPEAKER_OFF //PORTD.5 = 0; PORTD.6 = 0;
// 이동 방향
#define DIR_FORWARD 0
#define DIR_RIGHT 1
#define DIR_LEFT 2
#define DIR_TOTAL 3
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
// [Reference Sites]
// http://cafe.naver.com/carroty
// http://en.wikipedia.org/wiki/Atmel_AVR
#endif // __FIAAVR_DEF_H__
[/code]
fiasvr_lcd.h : 캐릭터LCD 관련 정의부
[code]
/**
@file fiaavr_lcd.h
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa - LCD출력및 디버깅 4비트 제어
*/
#ifndef __FIAAVR_LCD_H__
#define __FIAAVR_LCD_H__
///////////////////////////////////////////////////////////
// [Ports Information]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_def.h"
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
extern flash unsigned char *Logo; // 로고 글귀
extern unsigned char pszData[16]; // LCD출력을 위한 스트링
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
void fialcd_Init(); // LCD초기화 작업!
void fialcd_DrawLogo();
void fialcd_Debug(int nSeq, int nMsg); // 숫자값을 출력하기 위해서
// 글자하나 찍어볼때 lcd_putchar(getchar1())
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
#endif // __FIAAVR_LCD_H__
[/code]
fiasvr_lcd.cpp : 캐릭터LCD 관련 구현부
[code]
/**
@file fiaavr_lcd.c
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa - LCD출력및 디버깅
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_lcd.h"
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
flash unsigned char *Logo=" Hello! I'm jINa"; // 로고 글귀
unsigned char pszData[16]; // LCD출력을 위한 스트링
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
// LCD초기화 작업!
void fialcd_Init()
{
lcd_init(16);
}
void fialcd_DrawLogo()
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(Logo);
}
// 숫자값을 출력하기 위해서
// ex) 초음파 센서 거리출력!
void fialcd_Debug(int nSeq, int nMsg)
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(pszData, "%d : %d ", nSeq, nMsg);
lcd_puts(pszData);
}
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
[/code]
jina_ver120.c : 메인 파일에 해당한다.
[code]
/**
@file ver120.c
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_def.h"
#include "fiaavr_lcd.h"
#include "fiaavr_sensor_gas.h"
#include "fiaavr_sensor_supersonic.h"
#include "fiaavr_serial.h"
#include "fiaavr_stepmotor.h"
#include "fiaavr_util.h"
// LCD부분은 다른곳에 넣으면 안됨!
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
unsigned char pszGasData[16];
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
// Port initialization
void InitPorts()
{
// Input/Output Ports 초기화
// DDRA=0xFF;
// PORTA=0x00;
DDRC = 0xFF;
PORTC = 0x00;
DDRD = 0xFF;
PORTD = 0x00;
DDRE = 0x00;
PORTE =0x00;
// PORTA = 0xFF;
}
// Entry Point!
void main(void)
{
// Declare your local variables here
InitPorts();
fialcd_Init();
fialcd_DrawLogo();
delay_ms(1500);
lcd_clear();
UARTInit(9600);
SS_InitSensor();
InitMotor();
SS_InitTimer();
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x41; // 0,2번 타이머 사용!
ETIMSK=0x00;
InitGas();
#asm("sei") // Global enable interrupts
Tx1_String2("jINa Start \r\n");
while(1)
{
};
}
[/code]
관련 링크
Atmega128 마이크로마우스 위험인식로봇(http://www.fiadot.com/TatterTools/1849)
16x2캐릭터 LCD(LC1621)에 글자찍기 성공!!!(http://www.fiadot.com/TatterTools/1835)
트랙백
댓글
글
Hardware 2007. 5. 5. 11:11jINa 완성기념 스샷~
학교에서 3월 30일날 발표하고 그때 찍어둔 사진들이
보고서 작성하면서 발견되서 이렇게 올려본다.
Home Robot
Free moveable robot
Avoiding wall and other things.
Detecting gas leak in your home
To give a person warning of the gas leak.
뭐 이런 구질구질한 수식어는 집어치우고
다양한 각도에서 찍은 동영상...에서 캡쳐한것들 ^^;
한 3달동안 띄엄띄엄 작업하면서 가장 크게 느낀점은...
HW는 아무나 하는게 아니구나 -_-;; 으하하
멤버쉽의 많은 사람들이 도와줬다.
민걸이햄, 성하햄, 깡, 완회씨.. 외에도
모두모두 캄사~ (__)
허접하게 나마 OrCAD로 만든 schematic도 첨부해본다..
RECENT COMMENT