реклама на сайте
подробности

 
 
> PIC18F4680, непонятки с тактированием, использую внешний генератор
Aaron
сообщение Jul 25 2013, 07:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Доброго времени суток!
Немного лирики: возникла необходимость написать крупный проект под PIC18F4680, до этого с пиками работал более 5 лет назад - простенькие программки однокнопочные, писались в MPASM либо MikroC. Сейчас попробовал MPLAB IDE, MikroC - не понравилось, ибо давно сижу в Eclipse. Настроил для компиляции связку Eclipse+SDCC+PICkit2. На всякий случай поставил C18 compiler, пока не пробовал его.
А теперь к делу: в схеме стоит генератор, на входе OSC1 прямоугольные импульсы уровня 5В, частота 14,75МГц.
Написал простенький проект, всё компилируется - пытаюсь просто дёргать ножками (кому интересно, могу выложить makefile).
Перепробовал все возможные конфигурации тактирования - реакция нулевая, ножки не дёргаются. При этом:
EC (external clock - мой вариант, т.к. генератор) - на OSC2 полная тишина;
HS, HSPLL (extarnal crystal) - на OSC2 вижу 14,75МГц в обоих случаях;
RC - на OSC2 тишина;
IRCIO7 (internal RC) - на OSC2 тоже тишина! Вот этого я вообще не понимаю!

Посмотрите и объясните, пожалуйста, где в такой простой программе может быть ошибка?

Вот конфигурационные регистры (при компиляции проверял конфиг регистры выходного файла PICkit2 программатором, всё компилируется нормально):
Цитата
#pragma config OSC = EC // EC with OSC2 as divide by 4 clock out
#pragma config FCMEN = ON // fail-safe clock monitor
#pragma config IESO = ON // internal-ext. OSC switch
#pragma config PWRT = OFF // power-up timer
#pragma config BOREN = BOACTIVE // brown-out reset
#pragma config BORV = 2 // brown-out voltage choose: 4.5V/4.2V/2.7V/2.0V
#pragma config WDT = OFF // watchdog timer
#pragma config WDTPS = 128 // WDT postscaler = 1:X
#pragma config MCLRE = ON // MCLR enable
#pragma config LPT1OSC = OFF // low power timer1 OSC
#pragma config PBADEN = OFF // PORTB pins configured as analog (ON) / digital (OFF) on Reset
#pragma config DEBUG = OFF // background debug
#pragma config XINST = OFF // enhanced instruction set CPU
#pragma config BBSIZ = 4096 // Boot Block Size
#pragma config LVP = ON // Low-voltage programming
#pragma config STVREN = ON // stack overflow-underflow reset
#pragma config CP0 = OFF // code protection block X
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF // boot block code protection
#pragma config CPD = OFF // Data EEPROM code protection
#pragma config WRT0 = OFF // write protection blocks
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
#pragma config WRTC = OFF
#pragma config WRTB = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF // table read protection blocks
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF


Вот сам простенький код:
Цитата
void main (void) {
// Set all interrupts default values
INTCON = 0x00;
INTCON2 = 0x00;
INTCON3 = 0x00;

// disable all interrupts
PIE1 = 0x00;
PIE2 = 0x00;
PIE3 = 0x00;

// 0xFF = set all pins as inputs
TRISA = 0xFF;
TRISB = 0xFF;
TRISC = 0xFF;
TRISD = 0xFF;
TRISE = 0xFF;

ADCON1 = 0x0F; // set all ANx channels as Digital I/O
CVRCON = 0x00; // reset AN settings
// CMCON = 0x07; // reset other AN settings
ECCP1CON = 0x00; // Capture/Compare/PWM off (reset ECCP1 module)

// clear output data latches
PORTA = 0x00;
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;
PORTE = 0x00;

// clear output data latches - alternate method
LATA = 0x00;
LATB = 0x00;
LATC = 0x00;
LATD = 0x00;
LATE = 0x00;

// clear all interrupt requests
PIR1 = 0x00;
PIR2 = 0x00;
PIR3 = 0x00;

// clear all interrupt priorities
IPR1 = 0x00;
IPR2 = 0x00;
IPR3 = 0x00;

// clear reset control register
RCON = 0x00;

// set unused edge chip pins as digital outputs
TRISA = 0x0C;
TRISB = 0x06;
while (1) {
PORTA = 0xFF;
PORTA = 0x00;
};
}


Сообщение отредактировал Aaron - Jul 25 2013, 07:01
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016