Цитата(skyled @ Jan 5 2011, 17:26)

Букву добавил. Перепрошил. Не помогло.
В данном случае и не должно было помочь. Я просто обратил Ваше внимание, что 4000000 > 32767, и поэтому нужно явно указать тип константы.
Цитата
На почти всех GPIO нули. Выв 4 подтянут к +5 В. Интервал 200 мС. Осциллограф бы заметил если что было бы. Питание добегает. Если залить hex, сгенерированый другой программой (не MPLAB vs HITECH), то светодиод загорается и гаснет как и положено. В случае, если залитиь мой hex, то ничего не происходит. Уже в тупике. Мой hex прилагается. Может есть возможность его залить в PIC12F629 и посмотреть, что будет? Спасибо.
P.S. Самое злое в этом, что симулируется все правильно.
Заливать Ваш хекс мне некуда. Попробуйте это:
Код
#include <htc.h>
__CONFIG(WDTDIS & UNPROTECT & INTIO & MCLRDIS);
#define _XTAL_FREQ 4000000UL
#define TICK 256 // TMR0 interrupt rate in us
#define LED_BLINK_RATE 200000UL // 200 ms
volatile bit flag;
unsigned int tick_count;
void interrupt tc_int(void)
{
if (T0IE && T0IF)
{
T0IF = 0;
flag = 1;
}
}
void main(void)
{
OPTION = 0b00001100;
INTCON = 0b00100000;
TRISIO = 0b00001000;
CMCON = 0b00000111;
GPIO = 0xFF;
ei(); // enable all interrupts
while(1)
{
if(flag)
{
flag = 0;
if(++tick_count == (LED_BLINK_RATE / TICK))
{
tick_count = 0;
GPIO = ~GPIO;
}
}
}
}
Из "сэрца горэстний замэт" (С) неизвестный грузынский поэт начала 19 века:
- ПРО причудлив, пользуйтесь ЛАЙТ/СТД;
- если предполагается что-то сложнее мырганья лампочкой, не пользуйтесь _delay() и её производными;
- коктейль из _delay() с прерываниями даст дивное послевкусье и сильную головную боль;
- пишите комментарии (особенно для инициализации SFR контроллера) - съэкономите и своё, и чужое время, если кто-то будет разбираться с Вашими сорцами.