본문 바로가기

프로그래밍 언어10

[MFC] C++ 엔터치면 종료 MFC에서 ENTER키나 ESC 키를 누르면 종료되는 문제 해결 방법입니다. 클래스 마법사에서 가상함수에 있는 PreTranslateMessage 함수를 추가합니다. BOOL TestDlg::PreTranslateMessage(MSG* pMsg) { // 아래의 내용을 추가 if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) { return TRUE; } return CDialog::PreTranslateMessage(pMsg); } 2023. 10. 13.
Atmel Micro processor Flash Programming Atmel MCU에 Command 명령어를 이용해서 바이너리를 굽는 방법입니다. AVR Studio로 바이너리 다운로드를 할 수 있지만 Dos창 또는 별도의 프로그램을 제작해서 다운로드가 가능합니다. STK500이라는 프로토콜로 Atmel MCU를 Flash Writing 하게 됩니다. AVR Studio를 설치하시면 STK500이라는 폴더가 생성이 되고 Flash Programing 파일들을 지원하고 있습니다. 아래 첨부파일에 다운받으셔서 program.bat 파일을 실행하시면 됩니다. Batch file에 대한 자세한 내용은 Dos Command를 참고하시기 바랍니다. stk500.exe -cCOM3 -I1845000 -b -t -J -dAtmega128 -e -pf -vf -ifTest.hex -l.. 2023. 9. 14.
printf 로 uart 출력방법(AVR) printf 처럼 uart로 출력하는 방법입니다. 프로그램시 디버깅을 하려면 UART로 로그를 많이 보내게 되는데 문자열로 만들어서 UART를 전송하는 방법입니다. 간단하게 아래와 같이 코딩하시면 디버깅이 편하겠죠? #ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #include #include #include #include #include void uart_send_byte(unsigned char byte) { while(!(UCSR0A & (1 2023. 9. 14.
AVR EEPROM 읽고 쓰기 AVR EEPROM을 Read 하거나 Write 하기 위해서는 주소가 필요합니다. uint8_t eeprom_read_byte (const uint8_t *addr) void eeprom_write_byte (uint8_t *addr, uint8_t value) uint16_t eeprom_read_word (const uint16_t *addr) void eeprom_write_word (uint16_t *addr, uint16_t value) void eeprom_read_block (void *pointer_ram, const void *pointer_eeprom, size_t n) void eeprom_write_block (void *pointer_eeprom, const void *pointe.. 2023. 9. 14.