AVR Studio 5.1 버전리뷰


AVR Studio 4.x 버전을 사용하다가 얼마전에 5.1 버전을 다운 받았다

AVR 사이트에서 몇가지 정보만 입력하면 다운 받을수 있었다.

기본적으로 닷넷 프레임이 적용된 버전으로

마치 Visual Studio 2010을 사용하는 듯한 착각을 .... 헐

새로운 프로젝트 생성(New Project)을 시도한다. ㅎㅎㅎ 몰론 AVRGCC도 함께 설치되었다.

왼쪽에 몇가지 템플릿이 생성되어 있고

(보니까 AVR-개발킷 특성에 맞게 설정할수도 있고, 어셈블러도 가능했다)

우측에 4가지 프로젝트 속성이 나타났는데 C/C++ 이 차인건가?? C++도 지원한다.?? 그런뜻인것 같다.

기존에는 C 만 지원했었으니까...



세번째 항목으로 프로젝트를 생성했다 
우~ 깔끔한 디자인




자동완성기능 까지


프로그래밍 기능 - 기존의 UI와는 완전히 다른.... ~~!!

기대되네요...

한가지 아쉬운점은

USBISP는 지원안한다는거.. 저렴한 ISP를 사용하는 나에게
비싼 다운로더를 구매해야 한다는 부담이 생긴다는거

PCB 보완사항 Allegro

제품을 받아들고 보니 뿌듯함이 크긴했지만
몇분뒤 실망감도...
실수한 부분이 있었던것이다.

아직 부품실장도 못해봐서
테스트를 진행해보면
더 크고 많으 실수가 발견될듯 싶다


차기버전에서 보완해야 할사항

1. 모듈 실장을 위한 커넥터간 간격**
2. PAD 부분에 VIA 제거
3. SILK TOP의 부품 모양 및 부품명 위치 조정
4. 서미스터 크기 조절
5. 온도센서 Width 조절

Hex String -> Int 변환 [Unicode] VC++

INT HextoInt(CString  szHexStr)
{
int nLen = szHexStr.GetLength();
TCHAR * tchHex = (TCHAR *)(LPCTSTR)szHexStr;
INT nResult = 0;

for(int i=0;i<nLen;i++)
{
TCHAR tchCh = 0;
if(tchHex[i] >= L'0' && tchHex[i] <= L'9')
tchCh = (tchHex[i] - 0x0030) & 0x000F;
else if(tchHex [i] >= L'A' && tchHex[i] <= L'F')
tchCh = (tchHex[i] - 0x0037) & 0x000F;
else
return 0; // 정상 Character가 아닌경우 0 리턴
 
nResult |= (tchCh << ((nLen-1) - i) * 4);
}
return nResult;
}

Hexa 스트링의 길이와 관계없이 Int형으로 리턴한다


거버 생성시 (Create Artwork)시 Database error 발생 조치 Allegro

거버 생성을 위해

Create Artwork 을 클릭하는 순간!


"Database has errors that cannot be corrected; artwork generation canceled"

라는 메세지 창이 발생하면
버전이 안맞거나 하는 경우이므로


DB Doctor 를 실행한후
해당 BRD 파일을 불러와서
위와 같이 체크를 진행한다.

그리고 다시 알레그로에서 BRD 파일을 열어서 Create Artwork 을 진행한다.

ORCAD PCB Footprint 변경수정 하는 방법 Allegro

 

ORCAD에서 회로도를 작성한후

어렵사리 Netlist 추출까지 성공은 했는데

부품이 바뀌면서 회로도가 수정되었고

Footprint도 바꿔야 하는 상황에서 아래 순서대로 진행하면 수정이 가능하다

   1. 우선 netlist와 library를 Export한다.

** Netlist Export
경로를 확인후에 저장한다.


** Library Export


   2. netlist파일 내용 수정

** 수정할 사항은 SW1 의 Footprint를 교체하는것!
netlist 파일을 텍스트 에디터로 열어서 내용을 수정합니다.

   기존 :
   SW_TACT_1102T ! 'SW_TAP_SW_TACT_1102T_ITS-1102T' ! 'ITS-1102T' ; SW1 SW2 SW3
      ==> SW1 ~ SW3 모두 1102T형으로 지정해놓았다

   수정:
   SW_TACT_1105V ! 'SW_TAP_SW_TACT_1105V_ITS-1105V' ! 'ITS-1105V' ; SW1     <추가된 내용>
   SW_TACT_1102T ! 'SW_TAP_SW_TACT_1102T_ITS-1102T' ! 'ITS-1102T' ; SW2 SW3


물론 이때 SW_ITS-1105V 에 해당하는 Footprint가 있어야 한다.

   3. 디바이스(Library) 파일 수정

새로 추가할 디바이스 파일을 1102T를 그대로 복사하여 하나더 만든후 이름을 수정한다.
복사하여 새로 만든 파일을 열어서
---------------------------------------------------------------
(DEVICE FILE: SW_TAP_SW_TACT_1105V_ITS-1105V) -> 이름 수정

PACKAGE SW_TACT_1105V ->이름 수정
CLASS IC
PINCOUNT 2 -> 핀수수정

PINORDER 'SW_TAP_SW_TACT_1105V_ITS-1105V' 1 2 -> 핀수 조절
PINUSE 'SW_TAP_SW_TACT_1105V_ITS-1105V' IN IN ->핀수에 맞게 조절, 핀이 2개이므로 IN, IN
FUNCTION G1 'SW_TAP_SW_TACT_1105V_ITS-1105V' 1 2 -> 핀수 조절

PACKAGEPROP PART_NAME SW_TAP
PACKAGEPROP VALUE 'ITS-1105V' -> 이름수정

END
---------------------------------------------------------------
다바이스 파일의 내용은 바꾸고자 하는 부품에 맞추어 수정한다.

기존의 footprint파일이 있는 폴더에 이 디바이스 파일과 netlist파일을 복사해 놓은후

   4. Import를 시작한다.
[File - Import - Logic] 에서 Other 탭을 선택하고
Supersede all logical data 에 체크



"Import Other" 버튼 클릭하면 오케이

만약 설정(경로등)이 잘 못되었거나 Syntax에 문제가 있는경우

로그창이 생성되면서 Error, Warning을 보여준다.

확인후 조치하면 됩니다.

사랑이란 인생이란... DDoong's Diary

사랑이란 인생이란....

메인메뉴의 이벤트 핸들러의 위치는? VC++

메인메뉴에 메뉴를 추가해놓고

이벤트 핸들러를 작성할대 보통은 MainFrame에 작성합니다.

그런데, 반드시 MainFrame에 작성해야 할까요?

이벤트 핸들러는 CCmdTarget을 상속받은 모든 클래스에서 사용이 가능합니다.

따라서, 관련성과 의미를 고려해서 작성하고 용이한 곳에 넣으면 됩니다.

MFC에서 Mysql 제어시 "Lost connection to MySQL server during query" VC++

MFC에서 MYSQL 쿼리를 하다가 갑자기 위에 같은 에러 메세지를 발생시켰다.

프로그램에서

서로다른 스레드를 돌면서 

DB Control Class에서 insert , Select, Delete를 반복하는데

동기화 문제가 발생한 것이다.

insert를 돌고 있다가 Select를 한다든지...

mutex 로 해결했다

CMutex g_db_mutex_sync; // 선언해주고


//DB를 제어하는 부분에다가
CSingleLock sLock(&g_db_mutex_sync, TRUE); 

넣어서 해결

Unsigned char -> 유니코드CString VC++

#include <afxconv.h>

 

 

USES_CONVERSION;
CString strTemp;

strTemp = A2W( (char*)cData );


이클립스 실행시 Failed to create the JAVA Virtual Machine err ANDROID

----------------------------------------------------
 추가내용
----------------------------------------------------
-vm
C:\Program Files\Java\jdk1.6.0_23\bin\javaw.exe
----------------------------------------------------

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M                    ==> 256 -> 128  수 정
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m                    ==> 256 -> 128 수 정
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

1 2 3 4 5 6 7 8 9 10 다음