페이지

2012년 7월 8일 일요일

PIC18F45K20 Configuration Settings


 microchip의 PIC용 MPLAB C 컴파일러에서 작업할 때, C 소스에서 특정 레지스터 값을

#pragma config FOCS = INITO67;

이런 형식으로 지정할 수 있다. 이렇게 설정 할 수 있는 항목과 값들은 특정 mcu 마다 다르며, 그 내용은 mplab c 컴파일러가 설치된 곳의 doc 디렉토리에서 도움말 화일을 참조하여 알 수 있다. 또는 mpasm 디렉토리의 해당 mcu의 *.inc 화일에서 참조 할 수 있다.

다음은 PIC18F45K20의 configuration Setting 이다.

;==========================================================================
;
;   IMPORTANT: For the PIC18 devices, the __CONFIG directive has been
;              superseded by the CONFIG directive.  The following settings
;              are available for this device.
;
;   Oscillator Selection bits:
;     FOSC = LP            LP oscillator
;     FOSC = XT            XT oscillator
;     FOSC = HS            HS oscillator
;     FOSC = RC            External RC oscillator, CLKOUT function on RA6
;     FOSC = EC            EC oscillator, CLKOUT function on RA6
;     FOSC = ECIO6         EC oscillator, port function on RA6
;     FOSC = HSPLL         HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)
;     FOSC = RCIO6         External RC oscillator, port function on RA6
;     FOSC = INTIO67       Internal oscillator block, port function on RA6 and RA7
;     FOSC = INTIO7        Internal oscillator block, CLKOUT function on RA6, port function on RA7
;
;   Fail-Safe Clock Monitor Enable bit:
;     FCMEN = OFF          Fail-Safe Clock Monitor disabled
;     FCMEN = ON           Fail-Safe Clock Monitor enabled
;
;   Internal/External Oscillator Switchover bit:
;     IESO = OFF           Oscillator Switchover mode disabled
;     IESO = ON            Oscillator Switchover mode enabled
;
;   Power-up Timer Enable bit:
;     PWRT = ON            PWRT enabled
;     PWRT = OFF           PWRT disabled
;
;   Brown-out Reset Enable bits:
;     BOREN = OFF          Brown-out Reset disabled in hardware and software
;     BOREN = ON           Brown-out Reset enabled and controlled by software (SBOREN is enabled)
;     BOREN = NOSLP        Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
;     BOREN = SBORDIS      Brown-out Reset enabled in hardware only (SBOREN is disabled)
;
;   Brown Out Reset Voltage bits:
;     BORV = 30            VBOR set to 3.0 V nominal
;     BORV = 27            VBOR set to 2.7 V nominal
;     BORV = 22            VBOR set to 2.2 V nominal
;     BORV = 18            VBOR set to 1.8 V nominal
;
;   Watchdog Timer Enable bit:
;     WDTEN = OFF          WDT is controlled by SWDTEN bit of the WDTCON register
;     WDTEN = ON           WDT is always enabled. SWDTEN bit has no effect
;
;   Watchdog Timer Postscale Select bits:
;     WDTPS = 1            1:1
;     WDTPS = 2            1:2
;     WDTPS = 4            1:4
;     WDTPS = 8            1:8
;     WDTPS = 16           1:16
;     WDTPS = 32           1:32
;     WDTPS = 64           1:64
;     WDTPS = 128          1:128
;     WDTPS = 256          1:256
;     WDTPS = 512          1:512
;     WDTPS = 1024         1:1024
;     WDTPS = 2048         1:2048
;     WDTPS = 4096         1:4096
;     WDTPS = 8192         1:8192
;     WDTPS = 16384        1:16384
;     WDTPS = 32768        1:32768
;
;   CCP2 MUX bit:
;     CCP2MX = PORTBE      CCP2 input/output is multiplexed with RB3
;     CCP2MX = PORTC       CCP2 input/output is multiplexed with RC1
;
;   PORTB A/D Enable bit:
;     PBADEN = OFF         PORTB<4:0> pins are configured as digital I/O on Reset
;     PBADEN = ON          PORTB<4:0> pins are configured as analog input channels on Reset
;
;   Low-Power Timer1 Oscillator Enable bit:
;     LPT1OSC = OFF        Timer1 configured for higher power operation
;     LPT1OSC = ON         Timer1 configured for low-power operation
;
;   HFINTOSC Fast Start-up:
;     HFOFST = OFF         The system clock is held off until the HFINTOSC is stable.
;     HFOFST = ON          HFINTOSC starts clocking the CPU without waiting for the oscillator to stablize.
;
;   MCLR Pin Enable bit:
;     MCLRE = OFF          RE3 input pin enabled; MCLR disabled
;     MCLRE = ON           MCLR pin enabled; RE3 input pin disabled
;
;   Stack Full/Underflow Reset Enable bit:
;     STVREN = OFF         Stack full/underflow will not cause Reset
;     STVREN = ON          Stack full/underflow will cause Reset
;
;   Single-Supply ICSP Enable bit:
;     LVP = OFF            Single-Supply ICSP disabled
;     LVP = ON             Single-Supply ICSP enabled
;
;   Extended Instruction Set Enable bit:
;     XINST = OFF          Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
;     XINST = ON           Instruction set extension and Indexed Addressing mode enabled
;
;   Background Debugger Enable bit:
;     DEBUG = ON           Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug
;     DEBUG = OFF          Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
;
;   Code Protection Block 0:
;     CP0 = ON             Block 0 (000800-001FFFh) code-protected
;     CP0 = OFF            Block 0 (000800-001FFFh) not code-protected
;
;   Code Protection Block 1:
;     CP1 = ON             Block 1 (002000-003FFFh) code-protected
;     CP1 = OFF            Block 1 (002000-003FFFh) not code-protected
;
;   Code Protection Block 2:
;     CP2 = ON             Block 2 (004000-005FFFh) code-protected
;     CP2 = OFF            Block 2 (004000-005FFFh) not code-protected
;
;   Code Protection Block 3:
;     CP3 = ON             Block 3 (006000-007FFFh) code-protected
;     CP3 = OFF            Block 3 (006000-007FFFh) not code-protected
;
;   Boot Block Code Protection bit:
;     CPB = ON             Boot block (000000-0007FFh) code-protected
;     CPB = OFF            Boot block (000000-0007FFh) not code-protected
;
;   Data EEPROM Code Protection bit:
;     CPD = ON             Data EEPROM code-protected
;     CPD = OFF            Data EEPROM not code-protected
;
;   Write Protection Block 0:
;     WRT0 = ON            Block 0 (000800-001FFFh) write-protected
;     WRT0 = OFF           Block 0 (000800-001FFFh) not write-protected
;
;   Write Protection Block 1:
;     WRT1 = ON            Block 1 (002000-003FFFh) write-protected
;     WRT1 = OFF           Block 1 (002000-003FFFh) not write-protected
;
;   Write Protection Block 2:
;     WRT2 = ON            Block 2 (004000-005FFFh) write-protected
;     WRT2 = OFF           Block 2 (004000-005FFFh) not write-protected
;
;   Write Protection Block 3:
;     WRT3 = ON            Block 3 (006000-007FFFh) write-protected
;     WRT3 = OFF           Block 3 (006000-007FFFh) not write-protected
;
;   Configuration Register Write Protection bit:
;     WRTC = ON            Configuration registers (300000-3000FFh) write-protected
;     WRTC = OFF           Configuration registers (300000-3000FFh) not write-protected
;
;   Boot Block Write Protection bit:
;     WRTB = ON            Boot Block (000000-0007FFh) write-protected
;     WRTB = OFF           Boot Block (000000-0007FFh) not write-protected
;
;   Data EEPROM Write Protection bit:
;     WRTD = ON            Data EEPROM write-protected
;     WRTD = OFF           Data EEPROM not write-protected
;
;   Table Read Protection Block 0:
;     EBTR0 = ON           Block 0 (000800-001FFFh) protected from table reads executed in other blocks
;     EBTR0 = OFF          Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 1:
;     EBTR1 = ON           Block 1 (002000-003FFFh) protected from table reads executed in other blocks
;     EBTR1 = OFF          Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 2:
;     EBTR2 = ON           Block 2 (004000-005FFFh) protected from table reads executed in other blocks
;     EBTR2 = OFF          Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
;
;   Table Read Protection Block 3:
;     EBTR3 = ON           Block 3 (006000-007FFFh) protected from table reads executed in other blocks
;     EBTR3 = OFF          Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
;
;   Boot Block Table Read Protection bit:
;     EBTRB = ON           Boot Block (000000-0007FFh) protected from table reads executed in other blocks
;     EBTRB = OFF          Boot Block (000000-0007FFh) not protected from table reads executed in other blocks
;
;==========================================================================
;==========================================================================
;
;       Configuration Bits
;
;   NAME            Address
;   CONFIG1H        300001h
;   CONFIG2L        300002h
;   CONFIG2H        300003h
;   CONFIG3H        300005h
;   CONFIG4L        300006h
;   CONFIG5L        300008h
;   CONFIG5H        300009h
;   CONFIG6L        30000Ah
;   CONFIG6H        30000Bh
;   CONFIG7L        30000Ch
;   CONFIG7H        30000Dh
;
;==========================================================================

2012년 7월 5일 목요일

Ateml JTAGICE3



'당근이의 AVR 갖고 놀기' 카페에서 중고로 구입. 20만원.

avr 같은 프로세서를 사용하는데 좀 과하지 않을까 싶지만, 디버거에 한번 익숙해지면... 이게 없으면 아랫도리가 허전한거다.

그런데 가지고 있는 ATmega128보드와 JTAG 핀 배치가 틀리다. atmel의 핀 배치를 레퍼런스로.


이 핀배치를 기준으로 하자.

Syntax Highlighter를 구글 블로그(blogspot, blogger)에

참고 사이트 : http://anshnote.blogspot.kr/2011/07/syntax-highlighter-blogger.html

디자인 -> 템플릿디자이너 -> 고급 -> css추가
.dp-highlighter
{
        font-family: "Consolas", "Monaco", "Courier New", Courier, monospace;
        font-size: 12px;
        background-color: #E7E5DC;
        width: 99%;
        overflow: auto;
        margin: 18px 0 18px 0 !important;
        padding-top: 1px; /* adds a little border on top when controls are hidden */
}

/* clear styles */
.dp-highlighter ol,
.dp-highlighter ol li,
.dp-highlighter ol li span 
{
        margin: 0;
        padding: 0;
        border: none;
}

.dp-highlighter a,
.dp-highlighter a:hover
{
        background: none;
        border: none;
        padding: 0;
        margin: 0;
}

.dp-highlighter .bar
{
        padding-left: 45px;
}

.dp-highlighter.collapsed .bar,
.dp-highlighter.nogutter .bar
{
        padding-left: 0px;
}

.dp-highlighter ol
{
        list-style: decimal; /* for ie */
        background-color: #fff;
        margin: 0px 0px 1px 45px !important; /* 1px bottom margin seems to fix occasional Firefox scrolling */
        padding: 0px;
        color: #5C5C5C;
}

.dp-highlighter.nogutter ol,
.dp-highlighter.nogutter ol li
{
        list-style: none !important;
        margin-left: 0px !important;
}

.dp-highlighter ol li,
.dp-highlighter .columns div
{
        list-style: decimal-leading-zero; /* better look for others, override cascade from OL */
        list-style-position: outside !important;
        border-left: 3px solid #6CE26C;
        background-color: #F8F8F8;
        color: #5C5C5C;
        padding: 0 3px 0 10px !important;
        margin: 0 !important;
        line-height: 14px;
}

.dp-highlighter.nogutter ol li,
.dp-highlighter.nogutter .columns div
{
        border: 0;
}

.dp-highlighter .columns
{
        background-color: #F8F8F8;
        color: gray;
        overflow: hidden;
        width: 100%;
}

.dp-highlighter .columns div
{
        padding-bottom: 5px;
}

.dp-highlighter ol li.alt
{
        background-color: #FFF;
        color: inherit;
}

.dp-highlighter ol li span
{
        color: black;
        background-color: inherit;
}

/* Adjust some properties when collapsed */

.dp-highlighter.collapsed ol
{
        margin: 0px;
}

.dp-highlighter.collapsed ol li
{
        display: none;
}

/* Additional modifications when in print-view */

.dp-highlighter.printing
{
        border: none;
}

.dp-highlighter.printing .tools
{
        display: none !important;
}

.dp-highlighter.printing li
{
        display: list-item !important;
}

/* Styles for the tools */

.dp-highlighter .tools
{
        padding: 3px 8px 3px 10px;
        font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
        color: silver;
        background-color: #f8f8f8;
        padding-bottom: 10px;
        border-left: 3px solid #6CE26C;
}

.dp-highlighter.nogutter .tools
{
        border-left: 0;
}

.dp-highlighter.collapsed .tools
{
        border-bottom: 0;
}

.dp-highlighter .tools a
{
        font-size: 9px;
        color: #a0a0a0;
        background-color: inherit;
        text-decoration: none;
        margin-right: 10px;
}

.dp-highlighter .tools a:hover
{
        color: red;
        background-color: inherit;
        text-decoration: underline;
}

/* About dialog styles */

.dp-about { background-color: #fff; color: #333; margin: 0px; padding: 0px; }
.dp-about table { width: 100%; height: 100%; font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; }
.dp-about td { padding: 10px; vertical-align: top; }
.dp-about .copy { border-bottom: 1px solid #ACA899; height: 95%; }
.dp-about .title { color: red; background-color: inherit; font-weight: bold; }
.dp-about .para { margin: 0 0 4px 0; }
.dp-about .footer { background-color: #ECEADB; color: #333; border-top: 1px solid #fff; text-align: right; }
.dp-about .close { font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; background-color: #ECEADB; color: #333; width: 60px; height: 22px; }

/* Language specific styles */

.dp-highlighter .comment, .dp-highlighter .comments { color: #008200; background-color: inherit; }
.dp-highlighter .string { color: blue; background-color: inherit; }
.dp-highlighter .keyword { color: #069; font-weight: bold; background-color: inherit; }
.dp-highlighter .preprocessor { color: gray; background-color: inherit; }
그리고 </head>태그 바로앞에 밑에 코드를 붙여 넣는다.














이제는 다음과 같이 사용.

<pre>, <textarea> 두 가지 태그 모두 사용할 수 있다. 위 코드는 <pre>로 열고 <textarea> 코드가 포함된 소스 코드.

 class 속성에 사용할 수 있는 언어 코드
언어class
C/C++cpp, c, c++
C#c#, c-sharp, csharp
CSScss
Delphidelphi, pascal
Javajava
Java Scriptjs, jscript, javascript
PHPphp
Pythonpy, python
Rubyrb, ruby, rails, ror
Sqlsql
VBvb, vb.net
XML/HTMLxml, html, xhtml, xslt