검색결과 리스트
분류 전체보기에 해당되는 글 710건
- 2007.04.10 이공계 장학금 관련...
- 2007.03.19 근황... 4
- 2007.03.17 웨어러블(wearable) 기기에 있어서 인체내 무선통신의 응용
- 2007.03.17 VC++ 프로그래밍 관련 잡다한 정보 몇가지..
- 2007.01.31 적외선 LED 테스트 2
- 2007.01.30 ShellExecute와 ShellExecuteEx 를 이용해 프로세스 실행하기!
- 2007.01.29 16x2캐릭터 LCD(LC1621)에 글자찍기 성공!!!
- 2007.01.28 스텝모터 제어~
- 2007.01.27 첫번째 AVR Atmega162 프로젝트~~ 뚜둥~ 1
- 2007.01.27 AVR의 세계~ 유후~
글
Diary 2007. 3. 19. 06:10근황...
나름 빡빡한 삶을 살고자 블로깅과 웹질, 메일질, 게임질(이건 제외ㅡㅡ;)을 자제하면서
다양한 분야에 손만 살짝 담그다 말다 하고 있다.
제일 먼저 마이크로 마우스...
요놈 처음에는 신기하고 잼있더니 가면 갈수록
어이없는 실수들(와이어 끊어져서 안되는거, VCC,GND반대로 연결하기, 부품태워먹기...등등)로
난감 시츄에이션이 연출되고...
흥미를 잃어가고 있다.
정떨어지기전에 빨리 완성해야된다 ㅡㅡ;;;
이제 맵 빌딩 부분만 남았는데 그나마 SW로 하는 부분이라 다행이다.
멤버쉽 창의과제 들어가기전에 토익에 올인하려고~
학교선배(제원이행님 짱~^^)에게 개인강습(?)-처음에는 스터디였음 ㅡㅡ; -을 받고 있다.
과연 4월 29일 토익에서 얼마나 점수가 나올것인가~
다른건 다 찌질하게 손데는것들...
WDM드라이버, OS제작, 파일시스템, RTOS, 루아....
뭐 하나 집중을 해야하는데~ 다하고 싶어서 미치겠따 ㅡ_ㅡ;;
꼭 공부못하는것들이 책 이것저것 펴놓고 혼자 공부는 다하는것처럼 하긴 하더만~...
딱 그꼴...
지은이햄 책산거 줘야하는데~ 그것도 붙들고 ..;;
트랙백
댓글
보호글
Idea 2007. 3. 17. 23:57웨어러블(wearable) 기기에 있어서 인체내 무선통신의 응용
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.
보호글
Technical Article/펌 2007. 3. 17. 15:12VC++ 프로그래밍 관련 잡다한 정보 몇가지..
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.
글
Hardware 2007. 1. 31. 05:57적외선 LED 테스트
적외선 수광부 발광부를 PORTE 0,1번핀에 각각 연결해서 330옴 저항달고 연결했다.
물론 수광부는 +, -를 반대로 꽂고...
ADC를 이용해서 10비트를 받아서 스트링으로 변환해서 찍었는데
최대 1023이 나와야 한다고 하는데 44밖에 안나온다 -_-;;
센싱은 되는데 값이 부정확하니 나중에 이를 어찌할꼬~ 흐흐
#define SetBit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define ClearBit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))#include <mega128.h>
#include <delay.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include "lcd.h"
#include "util.h"
#include "uart.h"void AD_disp(int);
void main(void)
{
unsigned char pszData[4];
unsigned char string[20];
int ad_val;
// unsigned char receive_data = NULL;
// LCD 포트 초기화
LCDPortInit();
// LCD 초기화 명령
LCDInit();
LCDControl(LCDCLEAR);
LCDControl(LCDCLEAR);
/*
delay_ms(20);
// 블루투스가 19200으로 셋팅되어 있으므로.
UARTInit(19200);
*/
delay_ms(20);
LCDControl(LCDLINE1);
LCDStringOut2("FIA");
// #asm("sei");
//블루투스를 통해 받을 거 밖에 없으므로 따로 작업할 것이 없다.
// PF.0 = 수광부
// PF.1 = 발광부
DDRF = 0x7F;
PORTF = 0x40;
// PORTF.1 = 1;ADMUX = 0x20;
ADCSRA = 0x87;
delay_ms(5);
while(1)
{
ADCSRA = 0xC7;
while( ( ADCSRA & 0x10) == 0 );
ad_val = ADCH;
LCDControl(LCDLINE2);
itoa(ad_val, string);
LCDStringOut(string);
//AD_disp(ad_val);
delay_ms(20);
}
}
void AD_disp(int val)
{
unsigned char pszData[16];float fval;
int ival, buf;
char N100, N10, N1;
fval = (float)val * 5.0 / 1023.0;
ival = (int)(fval * 100.0 + 0.5);
N100 = ival / 100 + 48;
buf = ival %100;
N10 = buf / 10 + 48;
N1 = buf % 10 + 48;
// LCDControl(LCDCLEAR);
LCDControl(LCDENTRY);
LCDCharOut(N100);
LCDCharOut(N10);
LCDCharOut(N1);
// sprintf(pszData, "%c %c %c", N100, N10, N1);
// LCDStringOut(pszData);
delay_ms(300);
}
트랙백
댓글
글
Technical Article 2007. 1. 30. 21:03ShellExecute와 ShellExecuteEx 를 이용해 프로세스 실행하기!
// case 0. 그냥 실행하는 경우
ShellExecute(NULL, "open", strFileName, "updated" , NULL, SW_SHOW);
// case 1. 해당프로세스를 실행시킬때 인자 넘기기
SHELLEXECUTEINFO seInfo = {0};seInfo.cbSize = sizeof (SHELLEXECUTEINFO);
seInfo.lpVerb = "open";
seInfo.lpDirectory = m_strExePath;
seInfo.lpFile = m_strExeFile;
seInfo.lpParameters = "onbada";
seInfo.nShow = SW_SHOWNORMAL;ShellExecuteEx (&seInfo);
EndDialog(IDOK);
// case 2. 해당 프로세스가 끝날때까지 기다리기
SHELLEXECUTEINFO seInfo = {0};
seInfo.cbSize = sizeof (SHELLEXECUTEINFO);
seInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
seInfo.lpVerb = "open";
seInfo.lpDirectory = "d:\";
seInfo.lpFile = "FiaLineCnt.exe";
seInfo.nShow = SW_SHOWNORMAL;
if (ShellExecuteEx (&seInfo))
{
WaitForSingleObject (seInfo.hProcess, INFINITE);
}
트랙백
댓글
글
Hardware 2007. 1. 29. 10:2116x2캐릭터 LCD(LC1621)에 글자찍기 성공!!!
Atmega162 + 16x2캐릭터 LCD(LC1621)
V0(Contrast)에 GND 안물리면 안나온다는걸 뼈저리게 느끼는 순간 --;
핀배열은 다음과 같다.
핀: LC1621 - Atmega162
1 : GND - GND
2 : VCC - VCC (5V)
3 : V0 - GND
4 : RS - PA0
5 : RW - PA1
6 : E(Enable) - PA2
7 : DB0
8 : DB1
9 : DB2
10 : DB3
11 : DB4 - PA4
12 : DB5 - PA5
13 : DB6 - PA6
14 : DB7 - PA7
15 : 백라이트 VCC(5V)
16 : 백라이트 GND
4비트 제어를 하기 위해서 DB0~3까지 안쓰고 했는데~
궂이 4비트로 할필요는 없을듯한데 ;; 그렇게까지 핀수가 모자라다면
그냥 Atmega128로 넘어가는게 나을듯~
이상 3시간 반의 삽질결과~
관련 링크
마이크로마우스 Jina의 캐릭터 LCD(LC1621) 제어 소스 공개 (http://www.fiadot.com/TatterTools/1909)
Atmega128 마이크로마우스 위험인식로봇(http://www.fiadot.com/TatterTools/1849)
트랙백
댓글
글
Hardware 2007. 1. 28. 06:32스텝모터 제어~
SLA7024를 모터 드라이버를 사용하는 스텝모터(바디포함)를 구해서
모터를 돌렸다.
핀 배열은 다음과 같다.
200펄스당 1.8도인가 .. 그렇다고 한다;;(카더라~ 통신)
1 - VCC(AVR 5V)
2 - GND
3 - CLK A(클럭 : 딜레이 줘서 0,1주면 된다)
4 - CLK B
5 - ENABLE A(활성화 여부 : 1주면 켜진다)
6 - ENABLE B
7 - DIR A(방향 : 0이면 전진, 1이면 후진)
8 - DIR B
9 - PHASE (사용안함)
10 - VCC (Motor 10V)
데이터시트보고 가르쳐준 성하와 민경이 한테 감사의 마음을 ^^
모터빌려준 하지도 물론~ ㅋㅋ
트랙백
댓글
글
Hardware 2007. 1. 27. 05:40첫번째 AVR Atmega162 프로젝트~~ 뚜둥~
[결과]
mms://wm-002.cafe24.com/lovydayz/heart0005.mp4
[소스]
#include <mega162.h>
#include <delay.h>
#define NORMAL_DELAY 100 // delay per each led
#define MODE_DELAY 200 // mode change
#define LED_MAX 18 // total LED count
void InitLED();
void SetLED(int nPos, int nStatus);
void SetAllLED(int nStatus); // 전체 LED
void RightShiftLED(int nAcc, int bInc); // 가속도, 누적
void LeftShiftLED(int nAcc, int nInc);
void SplashLED(int nDelay, int nRepeat); // 번쩍 번쩍
void UpToDownLED(int nAcc);
void DownToUpLED(int nAcc);
void StarSplashLED(int nAcc, int nRepeat);
int n;
int nDelay; // for calcuration accelation
void main()
{
DDRA = 0xff;
PORTA = 0x00;
DDRB = 0xff;
PORTB = 0x00;
DDRC = 0xff;
PORTC = 0x00;
while(1)
{
// pattern 1
nDelay = 150;
RightShiftLED(-3,0);
nDelay = 200;
RightShiftLED(0,1);
nDelay = 150;
LeftShiftLED(-3,0);
nDelay = 200;
LeftShiftLED(0,1);
// pattern 2
SplashLED(500, 3);
// pattern 3
nDelay = 100;
UpToDownLED(100);
nDelay = 100;
DownToUpLED(100);
// pattern 4
nDelay = 300;
StarSplashLED(0,5);
}
}
void InitLED()
{
PORTA = 0x00;
PORTB = 0x00;
PORTC = 0x00;
SetAllLED(0); // 이거 없으니까 버그 생긴다-_-
n = 0;
}
void SetLED(int nPos, int nStatus)
{
switch ( nPos )
{
case 0: PORTA.0 = nStatus; break;
case 1: PORTA.1 = nStatus; break;
case 2: PORTA.2 = nStatus; break;
case 3: PORTA.3 = nStatus; break;
case 4: PORTA.4 = nStatus; break;
case 5: PORTA.5 = nStatus; break;
case 6: PORTA.6 = nStatus; break;
case 7: PORTC.0 = nStatus; break;
case 8: PORTC.1 = nStatus; break;
case 9: PORTC.2 = nStatus; break;
case 10: PORTC.3 = nStatus; break;
case 11: PORTC.4 = nStatus; break;
case 12: PORTC.5 = nStatus; break;
case 13: PORTC.6 = nStatus; break;
case 14: PORTC.7 = nStatus; break;
case 15: PORTB.0 = nStatus; break;
case 16: PORTB.1 = nStatus; break;
case 17: PORTB.2 = nStatus; break;
default: break;
}
}
void SetAllLED(int nStatus)
{
int nLedCnt;
for(nLedCnt=0;nLedCnt<LED_MAX;nLedCnt++)
{
SetLED(nLedCnt, nStatus);
}
}
// whole LED on or off ..
void SplashLED(int nDelay, int nRepeat)
{
int bStatus = 1;
int j=0;
InitLED();
for(j=0;j<nRepeat*2;j++)
{
SetAllLED(bStatus);
bStatus = bStatus == 0 ? 1 : 0;
delay_ms(nDelay);
}
}
void RightShiftLED(int nAcc, int bInc)
{
InitLED();
for(n=0;n<18;n++)
{
if ( 0 == bInc )
SetLED(n-1, 0);
SetLED(n, 1);
if ( 0 < nDelay+nAcc && 5000 >= nDelay+nAcc )
nDelay += nAcc;
delay_ms(nDelay);
}
// delay_ms(MODE_DELAY);
}
void LeftShiftLED(int nAcc, int bInc)
{
InitLED();
for(n=17;n>=0;n--)
{
if ( 0 == bInc )
SetLED(n+1, 0);
SetLED(n, 1);
if ( 0 < nDelay+nAcc && 5000 >= nDelay+nAcc )
nDelay += nAcc;
delay_ms(nDelay);
}
// delay_ms(MODE_DELAY);
}
void UpToDownLED(int nAcc)
{
InitLED();
for(n=0;n<9;n++)
{
SetLED(n,1);
SetLED(LED_MAX-n,1);
if ( 0 < nDelay+nAcc && 5000 >= nDelay+nAcc )
nDelay += nAcc;
delay_ms(nDelay);
}
SetLED(n,1);
delay_ms(nDelay);
}
void DownToUpLED(int nAcc)
{
InitLED();
SetLED(9,1);
delay_ms(nDelay);
for(n=8;n>=0;n--)
{
SetLED(n,1);
SetLED(LED_MAX-n,1);
if ( 0 < nDelay+nAcc && 5000 >= nDelay+nAcc )
nDelay += nAcc;
delay_ms(nDelay);
}
}
void StarSplashLED(int nAcc, int nRepeat)
{
int nStatus = 0;
int t=0;
InitLED();
for(t=0;t<nRepeat;t++)
{
for(n=0;n<18;n++)
{
if ( 0 == nStatus )
{
if ( 0 == n%2 )
SetLED(n,1);
else
SetLED(n,0);
}
else
{
if ( 1 == n%2 )
SetLED(n,1);
else
SetLED(n,0);
}
}
nStatus = nStatus == 0 ? 1 : 0;
if ( 0 < nDelay+nAcc && 5000 >= nDelay+nAcc )
nDelay += nAcc;
delay_ms(nDelay);
}
}
트랙백
댓글
글
Hardware 2007. 1. 27. 01:19AVR의 세계~ 유후~
24일 서울에 교육갔다왔더니 부품이 와있군~ 으흐흐~
앞으로 AVR에 대해서 공부하는걸 이 분류에 넣고자 추가해보았다.
최종 목표는 몇가지 센서를 부착하고 있는 마이크로 마우스~!!!
진행상황과 알게된 지식을 정리하고자 한다.
현재까지 진해상황
24일 : AVR-ISP(Atmega에 케이블을 통해 프로그램을 심을수 있는 In system Programming)
2시간 수소문 끝에 구함 +_+;; 빵판에 LED 불켜봄 앗싸~조쿠나
민걸이햄이 atmega128보드를 던져줘서 그놈으로 LED테스트~ 잘되네~
CodeVisionAVR 1.24.8d 기본셋팅
Setting - Programmer Settings 에서
AVR Chip Programmer Type : Kanda Systems STK200+/300
Printer Port : LPT1: 378h
Delay Multiplier : 1
Atmega169 CKDIV8 Fuse Warning : 체크
25일 : ISP를 통해 Atmega162에 프로그램하기 위해서 ISP케이블과 10핀을 이용해
납땜. 핀 구조를 몰라서 개삽질함.
__ -__ (위에가 뽈록한 컨넥터를 기준으로 )
13579
24680
1 : SCK 8핀
2 : ACC(+)
3 : GND(-)
4 : X
5 : TXD0 11핀
6 : GND
7 : RXD0 10핀
8 : GND
9 : RESET 9핀
이거 한다고 민걸이햄 보드 핀 배열과 온갖 책 뒤짐 -_-;
책에 있는게 맞는지 몰라서 몇번 삽질~ 흐흐흐
XTAL1,2(19,18핀)에 크리스탈 16MHz짜리 박고 20pF 콘덴서 2개 박고 GND연결
2핀으로 전원부 연결(입력은 5V)
4핀짜리 소켓하나 박아서 GND, ACC, 17핀, x) 해서 LED로 테스트
테스트 소스~
#include <mega128.h>
void FiaDelay(int nRemain);void main()
{
DDRD = 0xFF;
while(1)
{
PORTD = 0xFF;
FiaDelay(50);
PORTD = 0x00;
FiaDelay(50);
}
}void FiaDelay(int nRemain)
{
int i,j,k;
for(i=0;i<200;i++)
for(j=0;j<200;j++)
for(k=0;k<nRemain;k++);
}
26일 : LED18개를 제어하기 위해 새로운 만능기판에 땜질 시작 했다.
전윈 2핀짜리를 빼서 7805에 연결하고(나중에 9V건전지로 할 예정) 스위치 연결.
대략 땜질하는데 3시간 소요 -_-;; 아고 어깨야~
불이 3개가 안들어와서 포트 문젠가 싶었더니
완회씌가 include를 Atmega128로 해놔서 그랬다는군 ;;; 난또 PE포트가 전류가 약한줄 알았3;;
오늘남은거는 LED하나씩 제어해보는거~ 타이머까지 하면 좋고~
RECENT COMMENT