Форум myROBOT.ru » Шаг за шагом » С чего начать? » Прошу помощи в создании hex-файла

Страниц (6): « 1 2 3 [4] 5 6 »
 

46. ilnur888 - 16 Ноября, 2010 - 21:47:19 - перейти к сообщению
mihail пишет:
ilnur888 пишет:
Аааа, вы ж не писали раньше про PD1.
Я не проявил должного внимания и поленился заглянуть в datasheet ATmega8. Вы, судя по всему, тоже. Прочитав результаты последних измерений я задумался над тем, что же такое логическая единица и логический ноль для ATmega8. Ответ был найден в datasheet ATmega8 (Figure 155, Figure 156 и Figure 157).

На PD1 постоянно присутствует логический ноль вне зависимости от того нажата кнопка или нет. Подробности смотрите в datasheet ATmega8 (Figure 155, Figure 156 и Figure 157).

Если Вы отсоедините от схемы фотодиод и оставите на PD1 только кнопку, то все будет
работать.


К сожалению, все также плохо...
Как я вас понял, делаю так:



Н-И-Ч-Е-Г-О не происходит!!! не в себе

Для полного счастья сделал вот так вот и пробовал по-разному: все равно одно и то же колесо вертится, толку нет



В чем же может быть причина, а???

mihail, огромное вам спасибо за то, что находите время и терпение отвечать на мои вопросы и решать эту проблему с роботом! Одобряю

Добавление

Кстати, а вот эта таблица в даташите не показывает значения низкого/высокого на МК???




\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

killgur пишет:
программа явно работает но считает что на линии 1 порта D всегда "1"

можно попробовать оставшиеся три линии на порте D

можно не включать подтягивающие резисторы на порте D и посмотреть появится ли на второй линии порта С "0"

скорее всего какой то глюк при компиляции или прошивке


Попробовал я значит все эти линии только что, ноль реакции...
(Добавление)
cjA пишет:
естественно после
ddrd=0
он должен реагировать на изменение напряжения на ножке, ну вот читает он с ножки 0 (а там у вас всегда ноль нажимайте , не нажимайте вы эту кнопку) и что ему выбрать "0" с ножки или "1" с portd1?
я думаю он выберет ноль с ножки разуж сказано ddrd=0 ?
чтобы было понятнее- чему равен aux=portd ?

логически по даташиту (но еще раз говорю я точно не знаю)
portx и pinx - это разные регистр, а вот что передано на шину физически (и на внешние ножки) из этих двух регистров - зависит от состояния ddrx и команды in\out



pled- это фототранзистор и есть, долго писать.


PLED - ясно, спасибо за уточнение!

ddrd=0 задается в начале, а потом из них PD1 программно меняется на "1", а я же его цепляю на "0" => т.к. порты D (все) настроены на прием, то МК должен вроде как понять.
Честно говоря сам запутался, сейчас буду глубже думать...
47. cjA - 16 Ноября, 2010 - 22:26:25 - перейти к сообщению
(ну сейчас то с двумя кнопками
portd1=1
уже не нужно писать?)

Ну значит при попытке сменить направление\двигатель идет помеха и МК рестартует. (это уже говорилось)

на моторчики полезно посадить конденсаторы, на питание МК любой дросель и тоже пару кондеров.

(TR обычно у нас пишут, у них Q, и соответственно PTR и PQ (PLED не очень граммотно, но это и не я придумал Смущение ))
48. ilnur888 - 16 Ноября, 2010 - 22:28:57 - перейти к сообщению
cjA пишет:
(ну сейчас то с двумя кнопками
portd1=1
уже не нужно писать?)

Ну значит при попытке сменить направление\двигатель идет помеха и МК рестартует. (это уже говорилось)

на моторчики полезно посадить конденсаторы, на питание МК любой дросель и тоже пару кондеров.

(TR обычно у нас пишут, у них Q, и соответственно PTR и PQ (PLED не очень граммотно, но это и не я придумал Смущение ))


Улыбка какие конденсаторы, емкость, вольт?
А вот что такое дросель и кондер буду сейчас искать по NETу.

(Добавление)
кондер и есть конденсатор? Смущение
(Добавление)
Да

Дросель - катушка индуктивности? Если да, то какую мне ставить?
49. cjA - 16 Ноября, 2010 - 22:36:47 - перейти к сообщению
http://myrobot.ru/wiki/index.php...s.AboutPowerFood

да собственно можно вокруг гвоздя побольше провода намотать.
50. ilnur888 - 16 Ноября, 2010 - 22:41:54 - перейти к сообщению
cjA пишет:
http://myrobot.ru/wiki/index.php?n=Articles.AboutPowerFood

да собственно можно вокруг гвоздя побольше провода намотать.


ОК, завтра надо будет посмотреть. Одобряю нужная инфа
51. cjA - 16 Ноября, 2010 - 22:55:48 - перейти к сообщению
попробуйте еще так, неужели не интересно?

LF()
delay(200)
LB()
delay(200)
RF()
delay(200)
RB()
delay(200)
while(1){
...
}



ну понятно да? это чтобы выяснить сбрасывается он при смене мотора или нет.
52. ilnur888 - 16 Ноября, 2010 - 23:01:31 - перейти к сообщению
cjA пишет:
попробуйте еще так, неужели не интересно?

LF()
delay(200)
LB()
delay(200)
RF()
delay(200)
RB()
delay(200)
while(1){
...
}



ну понятно да? это чтобы выяснить сбрасывается он при смене мотора или нет.


Интересно конечно, только вот LF,LB,RF,RB - таких портов я не видел Замешательство
53. mihail - 17 Ноября, 2010 - 01:35:12 - перейти к сообщению
Это не порты. cjA так функции назвал Голливудская улыбка
Для CVAVR
CODE:

LF(); //левый моторчик вперед
delay_ms(500);
LB(); //левый моторчик назад
delay_ms(500);
RF(); //правый моторчик вперед
delay_ms(500);
RB(); //правый моторчик назад
delay_ms(500);

Разумеется, эти функции необходимо написать и только потом вызывать.
(Добавление)
Более простой вариант воплощения идеи cjA

#include <mega8.h>
#include <delay.h>

void main(void)
{

DDRC = 0b00011110;

while (1)
{

PORTC = 0b00010110;
delay_ms(3000);
PORTC = 0b00011100;
delay_ms(3000);

}
}

(Добавление)
Кнопка точно на PD1?
(Добавление)
На первой картинке нарисовано то что я имел ввиду. Вы ведь измерили напряжение между GND и PD1 до замыкания кнопки и после? Что там было?
(Добавление)
Стабилизация работы микроконтроллера http://myrobot.ru/articles/mc_stab.php
54. cjA - 17 Ноября, 2010 - 20:49:29 - перейти к сообщению
так-так Улыбка
еще вопрос вылез , наткнулся тут на разницу между первым и вторым поколением авээрок.
Так значит в режиме работы ненужно подавать плюс на ресет? Он уже подтянут для новых МК? И зачем он тогда обозван portC6? Его только как выход можно использовать? Или совсем никак?

(это к тому что если чтото и подтянуто, не обязательно что там еденичка)

Короч, умеешь ты, ilnur888, головоломки задавать. Помираю со смеху
55. nest - 18 Ноября, 2010 - 00:18:39 - перейти к сообщению
cjA пишет:
наткнулся тут на разницу между первым и вторым поколением авээрок.
Так значит в режиме работы ненужно подавать плюс на ресет? Он уже подтянут для новых МК?
я всегда вешаю цепочку из резистора и кондёра. Лишним не будет.
cjA пишет:
зачем ресет тогда обозван portC6? Его только как выход можно использовать?
затем обозван, что его можно использовать как дополнительный IO-вывод, если ресет выключить фузом. Правда при этом теряется возможность последовательного прошивания Улыбка. А это восстанавливается только параллельнеым программатором. А, к примеру, у tini2313 вообще никак не восстанавливается.
56. cjA - 18 Ноября, 2010 - 09:06:25 - перейти к сообщению
я к тому что может
portc = 0b1110110
нужно писать?
команда portc= 0bxx0xxxxx случайно не программный сброс?
(Добавление)
(у 2313 даже параллельным? забавно)
(Добавление)
нет , проверил сейчас
57. nest - 20 Ноября, 2010 - 01:16:59 - перейти к сообщению
cjA пишет:
я к тому что может
portc = 0b1110110
не нужно. Уже тут обсуждалось. "Ненужный" бит просто игнорируется.
58. cjA - 20 Ноября, 2010 - 02:35:48 - перейти к сообщению
а обсуждалась то что после
portd=FF
только
portd=FF
а после
pind=FF
и
pind=FF
и
portd=FF
?
(это я вот сегодня в avrstudio наковырял, по мотивам топикстартера, возможно даже давно известно, но как с этим бороться????)
(Добавление)
и где Вы видете "ненужный" бит?
а подрыгал изнутри- ничего не меняется.
поэтому и написал
portc=0bxx0xxxxx - это не программный сброс (просто такая мысля мелькнула, посмотрим когда ilnur888 питание правильное сделает... Улыбка )
59. ilnur888 - 21 Ноября, 2010 - 15:26:04 - перейти к сообщению
Всем добрый вечер!
Уважаемые, Улыбка я прочитал статьти (см. выше) и сделал раздельное питание по следующей схеме:




GND общий, т.е. и с батареек и с аккум. замкнуты вместе.
Ничего не изменилось, проблема осталась.

Я вот думаю может попробовать другой МК mega8?
А может все эти проблемы из-зи того что это ATMEGA8-16PI и стоит он 59 руб,
тогда как ATMEGA8-16PU стоит 230 руб???
60. cjA - 21 Ноября, 2010 - 15:54:27 - перейти к сообщению
ничто не мешает на инпуты поставить светодиоды, что бы узнать где трабла
(цена тут не причем)