Ви не увійшли.
Я бы написал пару макросов, типа
#define LED_INIT() (DDRB |= 1<<6)
#define LED_ON() (PORTB |= 1<<6)
#define LED_OFF() (PORTB &= ~(1<<6))
и не лез бы ни в какое IDE.
Вот так работает:
void setup ()
{
DDRB = DDRB | B11000000; //PORTB.6 and PORTB.7 are as output now
}
void loop()
{
PORTB ^= B11000000; //PORTB.6 and PORTB.7 inverts its state every each second
delay(1000);
}
Спасибо всем.
В предлагаемой библиотеке разряды 6,7 порта PORTB (мультиплексированные с ХТАL1 и ХТАL2) и не показаны как I/O. Т.е. как I/O ипользуются только 6 разрядов порта:
//***************Output Pins*************
#define MotorA0 DDRD |=B00010000
#define MotorA1 DDRD |=B00100000
#define MotorB0 DDRD |=B01000000
#define MotorB1 DDRD |=B10000000
#define D0_Out DDRD |=B00000001
#define D1_Out DDRD |=B00000010
#define D2_Out DDRD |=B00000100
#define D3_Out DDRD |=B00001000
#define D4_Out DDRD |=B00010000
#define D5_Out DDRD |=B00100000
#define D6_Out DDRD |=B01000000
#define D7_Out DDRD |=B10000000
#define D8_Out DDRB |= B00000001
#define D9_Out DDRB |= B00000010
#define D10_Out DDRB |=B00000100
#define D11_Out DDRB |=B10001000
#define D12_Out DDRB |=B00010000
#define D13_Out DDRB |=B00100000
#define D14_Out DDRC |=B00000001
#define D15_Out DDRC |=B00000010
#define D16_Out DDRC |=B00000100
#define D17_Out DDRC |=B00001000
#define D18_Out DDRC |=B00010000
#define D19_Out DDRC |=B00100000
В моем проекте не хватает 2-х I/O, поэтому я использую внутренний генератор 8МГц для высвобождения PORTB6, PORTB7 и использования их как I/O.
Похоже здесь только к опыту Крылова обращаться
МАРТЫШКА И ОЧКИ
Мартышка к старости слаба глазами стала;
А у людей она слыхала,
Что это зло еще не так большой руки:
Лишь стоит завести Очки.
Очков с полдюжины себе она достала;
Вертит Очками так и сяк:
То к темю их прижмет, то их на хвост нанижет,
То их понюхает, то их полижет;
Очки не действуют никак.
«Тьфу пропасть!» говорит она: «и тот дурак,
Кто слушает людских всех врак:
Всё про Очки лишь мне налгали;
А проку на́-волос нет в них».
Мартышка тут с досады и с печали
О камень так хватила их,
Что только брызги засверкали.
ПС:http://myarduino.at.ua/index/biblioteka_cyberlib_arduino/0-11
Я нашел в c:\Program Files\Arduino\hardware\tools\avr\include\avr\iom328p.h:
#ifndef _AVR_IOM328P_H_
#define _AVR_IOM328P_H_ 1
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
#define PINB0 0
#define PINB1 1
#define PINB2 2
#define PINB3 3
#define PINB4 4
#define PINB5 5
#define PINB6 6
#define PINB7 7
#define DDRB _SFR_IO8(0x04)
#define DDB0 0
#define DDB1 1
#define DDB2 2
#define DDB3 3
#define DDB4 4
#define DDB5 5
#define DDB6 6
#define DDB7 7
#define PORTB _SFR_IO8(0x05)
#define PORTB0 0
#define PORTB1 1
#define PORTB2 2
#define PORTB3 3
#define PORTB4 4
#define PORTB5 5
#define PORTB6 6
#define PORTB7 7
setup()
{
pinMode(PINB6, OUTPUT); //PortB Pin6 as output
}
void loop()
{
digitalWrite(PINB6, HIGH);
delay(50);
digitalWrite(PINB6, LOW);
}
Не работает.
Спасибо. Сейчас попробую и отпишусь.
Спасибо.
"однако все настройки, и ввод-вывод вам придется делать самостоятельно, или модифицировать библиотеки Ардуино, в которых поддержки ввода-вывода, для этих выводов, нет."
Не подскажете Как?
Всем добрый день.
Можно ли использовать PortB-6, PortB-7 как I/O, если контроллер сконфигурирован на работу от Internal Oscillator 8MHz?
Если да, то это будут Pin D14 и D15 соответственно?
Для программирования используется Arduini IDE 1.6.8.
Спасибо.