ploop писал(а):Ноги надо раздвигать, а соединять - выводы.
Выводы надо формулировать, а соединять — пины
ploop писал(а):Ноги надо раздвигать, а соединять - выводы.
Gudd-Head писал(а):Выводы надо формулировать, а соединять — пины
ПИНы надо в телефон вводить и в паспорте узнавать, а соединять надо контакты МК.
FFAMax писал(а):По каким соображения тиньки(13) с завода идут 8Мгц, а атмеги128 - 1 Мгц?
pavlo! писал(а):подлючение индикатора к мк меняется?
ploop писал(а):И почему нет токоограничительных резисторов?
pavlo! писал(а):это сделано с целью экономии места. а так как индикация динамическая то сгореть индикаторы просто не успевают
Gudd-Head писал(а):pavlo! писал(а):это сделано с целью экономии места. а так как индикация динамическая то сгореть индикаторы просто не успевают
Угу. Вот зависнет МК, и тогда сгорят. Хотя, конечно, может сработать защита выходного буфера порта — я не знаю какой у ПИКов максимальный входной/выходной ток.
КРАМ писал(а):MCLR нужно подключить к питанию через 10 кОм (или около того).
Никакой связи между аппаратным сбросом и вачдогом нет.
Абракадабру Ваше устройство отображает по вполне осязаемым ошибкам в коде.
...
Нужен код.
Код: Выделить всё
OPTION = 0b00001110; // TMR0 on, 1:1 prescale, WDT 1:64 (1.152 sec)
Лютик писал(а): .......ногу mclr использовал как i/o(стоит кнопка), так что никаких резисторов на + не вешал.
........
все, вроде разобрался, ошиька была в том., что в прерывании поставил запись в ипром, что противоречиво
КРАМ писал(а):Лютик писал(а): .......ногу mclr использовал как i/o(стоит кнопка), так что никаких резисторов на + не вешал.
........
все, вроде разобрался, ошиька была в том., что в прерывании поставил запись в ипром, что противоречиво
Так все таки код...![]()
Нога сброса может быть только ВХОДОМ. Поэтому приводить аббревиатуру in/out неправильно. Впрочем использована она у Вас правильно - как вход. И подтяжка какая то должна быть у этого пина (либо к питанию, либо к земле). Иначе кнопка работать не будет.
Код: Выделить всё
#define Bit(bit) (1<<(bit))
#define ClearBit(reg, bit) reg &= (~(1<<(bit)))
//пример: ClearBit(PORTB, 1); //сбросить 1-й бит PORTB
#define SetBit(reg, bit) reg |= (1<<(bit))
//пример: SetBit(PORTB, 3); //установить 3-й бит PORTB
#define SetBitVal(reg, bit, val) do{if ((val&1)==0) reg &= (~(1<<(bit)));\
else reg |= (1<<(bit));}while(0)
//пример: SetBitVal(PORTB, 3, 1); //установить 3-й бит PORTB
// SetBitVal(PORTB, 2, 0); //сбросить 2-й бит PORTB
#define BitIsClear(reg, bit) ((reg & (1<<(bit))) == 0)
//пример: if (BitIsClear(PORTB,1)) {...} //если бит очищен
#define BitIsSet(reg, bit) ((reg & (1<<(bit))) != 0)
//пример: if(BitIsSet(PORTB,2)) {...} //если бит установлен
#define InvBit(reg, bit) reg ^= (1<<(bit))
//пример: InvBit(PORTB, 1); //инвертировать 1-й бит PORTB