Код: Выделить всё
#elif defined (__AVR_ATtiny2313__)
# include <avr/iotn2313.h>Код: Выделить всё
#elif defined (__AVR_ATtiny2313__)
# include <avr/iotn2313.h>Я, конечно, пока темен в AVR, но до RD7 в семибитном порту не докатился.Вообще то в даташите написано PD0...6 а не RD0...7 можете сами убедиться
Код: Выделить всё
#elif defined (__AVR_ATtiny2313__)Код: Выделить всё
if (PIND&(1<<PIND2){PORTD|=(1<<PD0);}
else {PORTD&=~(1<<PD0);}
Код: Выделить всё
ldi tmp,1<<TOIE0
out TIMSK0,tmp

есть вариант сохранять все в unicod потом открывать в студии.Правда понятно зачем вообще в блокноте делать.pokk писал(а):Здравствуйте, в качестве блокнота использую Notepat++ но при копировании когда в AVR studio теряются комментарии (становятся вопросиками) а если копировать из обычного (виндовского блокнота) то всё нормально копируется. Подскажите что сделать что бы не терялись комментарии. .
Создайте нужный текст и сохраните.Потом при при каждом новом проекте открываете этот файл и нажимаете сохранить как.Можно таким образом несколько шаблонов иметь.pokk писал(а):
И ещё не большой вопросик можно в AVR studio 4 сделать шаблон т.е я хочу сделать так что бы когда открываешь новый проект то вместо пустой страницы появлялась страница со стандартным кодом написанным заранее .
пользуйтесь DPAD ( подходит и для AVRstudio и для c51asm и для mplab)pokk писал(а):Здравствуйте, в качестве блокнота использую Notepat++ но при копировании когда в AVR studio теряются комментарии (становятся вопросиками) а если копировать из обычного (виндовского блокнота) то всё нормально копируется. Подскажите что сделать что бы не терялись комментарии.
И ещё не большой вопросик можно в AVR studio 4 сделать шаблон т.е я хочу сделать так что бы когда открываешь новый проект то вместо пустой страницы появлялась страница со стандартным кодом написанным заранее .
да давайте интересно по смотретьшаблоны у меня только к тем МК, которыми пользуюсь - attiny13, 2313 & atmega8515 - остальное леньки писать, ежли интересно - скину...
... Или старым добрым MultiEditBOB51 писал(а): пользуйтесь DPAD
Код: Выделить всё
# define set_bits(Reg,Mask) do( Reg|=Mask)while (0)
//использование
set_bits(PORTB,0x01) ; //можно числом
clear_bits(MCUCR,(1<<PUD)) ;//можно маской сдвига
Попробуйте в дополнение к обрУганному вами Си снизойти до изучения его ПРЕПРОЦЕССОРА. Гугл вам в помощь, много вкусного...CyberVad писал(а):Вопрос: кто как упрощает себе жизнь заменяя такие уродливые конструкции на более изящные?
Прошу не пинать.
Во-первых, присоединяюсь к тем, кто не считает такие конструкции уродливыми (точно так же устанавливаются и сбрасываются биты в переменных в памяти, это просто такой «оборот речи» языка С.CyberVad писал(а): B_PORT |= 1 << SCLK; //SCLK в единицу
B_PORT &= ~(1 << SCLK); //SCLK в ноль
Вопрос: кто как упрощает себе жизнь заменяя такие уродливые конструкции на более изящные?
Код: Выделить всё
// желтый светодиод подключен к 1-ой ножке порта B и включается _низким_ уровнем
#define LED_YEL B, 1, L
// красный светодиод подключен к 2-ой ножке порта B и включается _высоким_ уровнем
#define LED_RED B, 2, H
// Кнопка подключена к 3-ей ножке и при нажатии выдаёт _низкий_ уровень
#define KEY B, 3, L
// Оптрон подключен к 4-ей ножке и при активации выдаёт _высокий_ уровень
#define OPTO B, 4, H
// Всё, с этого момента можно забыть, какие активные уровни у кнопок и светодиодов.
// Можно произвольно врезать инверторы (например, транзисторные ключи), ничего не меняя
// во всей программе, поменяв только буковки H и L выше
ON(LED_YEL);
ON(LED_RED);
if (ACTIVE(KEY)) OFF(LED_YEL);
if (!ACTIVE(OPTO)) TOGGLE(LED_YEL); // проинвертировать выход