Технический форум по робототехнике.
Myp » 24 фев 2007, 19:56
- Код: Выделить всё • Развернуть
PIND.4 = 0;
PIND.6 = 1;
delay_ms(5000);
PIND.6 = 0;
PIND.5 = 1;
delay_ms(5000);
PIND.5 = 0;
PIND.4 = 1;
delay_ms(5000);
вроде всё просто так почему не работает?
должен получиться типа бегущий огонь
а в итоге такой результат
загорается 6 пин
загорается 5 пин
тухнут оба пина
загорается 5 и 4 пин
тухнет 5 пин
тухнут все
1. 000
2. 100
3. 110
4. 000
5. 011
6. 001
Myp » 24 фев 2007, 20:25
блин вобще дурь какаято
- Код: Выделить всё • Развернуть
PIND.4 = 1;
delay_ms(5000);
PIND.4 = 0;
delay_ms(5000);
в итоге одновременно моргает 5 и 6 нога а 4 всегда ноль...
этож бред какойто

D-M » 24 фев 2007, 20:35
надо в симуляторе попробовать
потому что когдая я делал что-то подобное тоже ни пойми что получалось, а оказывается просто паять неумею

D-M » 24 фев 2007, 20:37
ток щас в код всмотрелся, ты зачем в PIN единицы и нули пишешь?

Myp » 24 фев 2007, 20:40
ну так эта
чтоб моргало
записал типа единичку он горит
записал нолик не горит
тока я нехрена непойму в каком именно месте я дурак
D-M » 24 фев 2007, 20:41
да нет наверно эт я дурак,
НО!!!
PIN Read only
Myp » 24 фев 2007, 20:49
бугагага
это у меня после празника, с похмелья туплю =)
недавно тока проснулся, аспирину выпил и пошёл кодить...
а вобще с какого фига тогда у меня светик моргает???
- Код: Выделить всё • Развернуть
PINB.4 = 1;
PINB.4 = 0;
это работает

D-M » 24 фев 2007, 20:52
Myp писал(а):
а вобще с какого фига тогда у меня светик моргает???
я бы предположил что это глюки

avr123.nm.ru » 24 фев 2007, 20:58
Myp писал(а):- Код: Выделить всё • Развернуть
PIND.4 = 0;
PIND.6 = 1;
delay_ms(5000);
PIND.6 = 0;
PIND.5 = 1;
delay_ms(5000);
PIND.5 = 0;
PIND.4 = 1;
delay_ms(5000);
должен получиться типа бегущий огонь
Как обычно - в курс:
http://avr123.nm.ru/02.htmПорт_B имеет (как и другие порты МК)
минимум 3 сопоставленных ему регистра
и далее подробно. И
названы те МК у которых писать в PIN бессмысленно и те у которых такая запись переключает ножку.
avr123.nm.ru » 24 фев 2007, 21:03
чуть ниже
"таблица состояния ножки МК"
http://avr123.nm.ru/z1.htmБОЛЬШИМИ КРАСНЫМи БУКВАМИ:
Внимание ! Очень важно!
Битовые операции !
.... и для всех популярных компиляторов примеры.
avr123.nm.ru » 24 фев 2007, 21:07
Короче - записывать что-то в регистр PINx бессмысленно !
Имеет смысл только чтение из него.
Myp » 24 фев 2007, 21:27
avr123.nm.ru писал(а):Короче - записывать что-то в регистр PINx бессмысленно !
Имеет смысл только чтение из него.
я это знаю
но блин
я писал и у меня ноги меняли состояние
PINB.4 = 1;
PINB.4 = 0;
это работает

Myp » 25 фев 2007, 00:07
не ну правда сами попробуйте =)
чесное слово это мне не приглючилось
TamTam » 25 фев 2007, 12:04
Вот те бегущие огни в одну строчку правдо это я не в этих целях юзал
#define ADC_LINE_CHANGE_DEC PORTB=(( (PORTB-(4<<1)) & (3<<4) )) | (PORTB& (~(3<<4)));
#define ADC_LINE_CHANGE_INC PORTB=(( (PORTB+(1<<4)) & (3<<4) )) | (PORTB& (~(3<<4)));
avr123.nm.ru » 25 фев 2007, 12:17
использовать это наверно так ?
- Код: Выделить всё • Развернуть
#include < микроконтроллер .h>
#include <delay.h>
#define PORT_DEC PORTB=(( (PORTB-(4<<1)) & (3<<4) )) | (PORTB& (~(3<<4)));
#define PORT_INC PORTB=(( (PORTB+(1<<4)) & (3<<4) )) | (PORTB& (~(3<<4)));
main{
DDRB = 255;
while(1){
PORT_INC
delay_ms(пауза между переключениями);
}
}