Перейти к содержанию
    

перед чтением регистра UDR неплохо бы для начала убедиться что там есть данные проверив бит RXC в статусном регистре UCSRA.

Спасибо, теперь пойду искать как это проверить ) такой вариант сойдет?

unsigned char USART_Receive( void )

{

/* Ожидание окончания приема данных */

while ( !(UCSRA & (1<<RXC)) );

/* Загрузка принятых данных из буфера */

return UDR;

}

Изменено пользователем David_Ali

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

перед чтением регистра UDR неплохо бы для начала убедиться что там есть данные проверив бит RXC в статусном регистре UCSRA.

Это во-первых!

 

Во-вторых, может быть нарушение кадра, ошибка четности, переполнение приемного буфера и т.п.

Выставил не ту скорость: данные приходят, флаги приема устанавливаются, но и флаги ошибок тоже лучше проверять.

 

Если ТС "нужен учитель" для получения знаний, то к советам стоит прислушаться.

Если нужно обсудить почему с гипертерминалом работает, а с чем-то другим не работает, то это немного другой подход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для начала просто проверьте что всё правильно приходит, сделав эхо.

 

while(1){

if (UCSRA & (1<<RXC)){

data = UDR;

UDR = data;

}

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемый, я не из кружка юных техников, по проффесии я инженер, работал и рабтаю по профилю уже немало, ....

Если я начну с самого начала, то...

Хотите учиться - пожалуйста.

Начните с "Гайки М3", она у меня на сайте.

Потом постарайтесь сформулировать задачу. Но не от "гайки" в виде "микроконтроллера", как Вы сейчас начали, а от самой задачи. Что должна делать "автоматизация"??? Крутить один вентиль? И что потом?

А может быть Вы хотите, чтобы "состояние" Вашего завода отражалось на мнемосхеме у оператора? И чтобы он мог дистанционно управлять производством? И я Вас уверяю, что Вы к этому довольно быстро придете....

А в таком случае, систему управления надо строить "сверху". Итак "линии связи", их протяженность, протокол...

Потом - вычислители, их "стандартность"... Потом "СКАДА-системы". Да? Нет?

Потом выполнение "команд оператора". Сколько? Как? Откуда и кто?

И только потом - микроконтроллеры. К этому моменту Вы поймете, смогут ли "самопалы" работать по сети, сколько надо памяти и пр.

И в конце "прорисуйте" для себя еще один момент. Где Вы будете брать ЗИП через пару лет? Любимые микроконтроллеры к тому времени могут быть сняты с производства и придется конструкцию и софт слегка переделывать. А при этом, есть такие вещи как COM-экспресс и пр. И есть Пром-РС.

Дорого? А сколько стоит отказ Вашего контроллера? Нет, не копеечного контроллера, как такового... Что при этом произойдет с заводом?

 

Если найдете у меня на сайте "Записки Инженера", то почитайте. И, возможно поймете, как надо относиться к "автоматизации"...

Про программирование я пока не пишу, об этом потом.

А будут вопросы - пишите...

Удачи!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для начала просто проверьте что всё правильно приходит, сделав эхо.

 

while(1){

if (UCSRA & (1<<RXC)){

data = UDR;

UDR = data;

}

}

Спасибо, сейчас буду разбиратся ) только допишу свое приложение. а то на работе завал че то сегодня.. как начал МК интересоватся к своей работе интерес потерял )

 

Если найдете у меня на сайте "Записки Инженера", то почитайте. И, возможно поймете, как надо относиться к "автоматизации"...

Про программирование я пока не пишу, об этом потом.

А будут вопросы - пишите...

Удачи!

Напишу обязательно, я пока проникаюсь идеей.. уже собрал кое какие устройства, кое что и запустил, и с gsm модулем успел разобратся, вот хочу в следующем году поступить куда нибудь по этому профилю. Раз вы так любезно предложили помощь, то я с радостью приму любую поддержку.

 

Где Вы будете брать ЗИП через пару лет? Любимые микроконтроллеры к тому времени могут быть сняты с производства и придется конструкцию и софт слегка переделывать. А при этом, есть такие вещи как COM-экспресс и пр. И есть Пром-РС.

Дорого? А сколько стоит отказ Вашего контроллера? Нет, не копеечного контроллера, как такового... Что при этом произойдет с заводом?

А еще вопрос, научившись программировать определенный тип Мк, мне разве трудно будет перейти на другой тип? и если да то что вы советуете в этом случае???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще вопрос, научившись программировать определенный тип Мк, мне разве трудно будет перейти на другой тип?

Будет легче перейти, чем совсем с нуля. И направления перехода бывают очень разные. Одно дело - с MCS51 на AVR, и совсем другое - с MCS51 на ARM ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Будет легче перейти, чем совсем с нуля. И направления перехода бывают очень разные. Одно дело - с MCS51 на AVR, и совсем другое - с MCS51 на ARM ...

Вот только заказал кстати STM32, попробую. Вообще хочу на каком нибудь АRМ процессоре запустить консольную версию Линукс, и уже писать под линукс, так как в этом я более опытный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, сейчас буду разбиратся ) только допишу свое приложение. а то на работе завал че то сегодня.. как начал МК интересоватся к своей работе интерес потерял )

....

А еще вопрос, научившись программировать определенный тип Мк, мне разве трудно будет перейти на другой тип? и если да то что вы советуете в этом случае???

1. Я просто хочу сказать, что Вы сейчас идете вслепую совершенно неверным путем и делаете ненужную работу...

2. Существуют "программно совместимые" контроллеры. Например, Пром-РС.

 

Видите ли, для профессионалов все это давным давно пройдено... Вам же надо начать делать автоматизацию не любительским способом - "снизу", как Вы это делаете сейчас, а "сверху" - так как это делают профессионалы... Почитайте журнал СТА, например...

Чем меньше Вы сейчас будете тратить время на ерунду вроде этой - "только допишу свое приложение", тем проще будет приблизиться к результату.

И пусть меня извинят коллеги, но почти все высказывания в этой ветке - это совсем не то, что Вам сейчас нужно...

Если говорить образно, то выглядит так:

- Я хочу научиться ездить на автомобиле, и я видел, как меняли колесо...

- Менять колесо не трудно...

- Вот пример как поменять колесо (фрагмент кода..)

- А вообще то есть разные колеса

- И чтобы поменять колесо, надо уметь отвинчивать и завинчивать...

 

Ну и так далее. Поверьте, я тоже так начинал в 80году, а к 90-му я уже знал, что так лучше не делать. Но я тогда с 80 года я участвовал в разработке "средств автоматизации" и другим путем идти не мог, а с 84 увидел, как они работают на объекте. Вот, к 88 сознание и прояснилось. 10 лет на "заправке" дорогого стоят... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот только заказал кстати STM32, попробую. Вообще хочу на каком нибудь АRМ процессоре запустить консольную версию Линукс, и уже писать под линукс, так как в этом я более опытный.

STM слишком сложен для начала.

Программирование для Linux и создание Standalone - приложений, не использующих ОС, различаются примерно как небо и земля, как по сложности, так и по подходу к задаче. Это из личного опыта (сейчас с огромным трудом и со страшным скрипом пытаюсь освоить программирование для Linux). Я, правда, не профессиональный программист ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(сейчас с огромным трудом и со страшным скрипом пытаюсь освоить программирование для Linux). Я, правда, не профессиональный программист ...

Ну писать под линукс это и есть моя основная работа. А мк еще впереди. :-)

 

1. Я просто хочу сказать, что Вы сейчас идете вслепую совершенно неверным путем и делаете ненужную работу...

2. Существуют "программно совместимые" контроллеры. Например, Пром-РС.

 

Видите ли, для профессионалов все это давным давно пройдено... Вам же надо начать делать автоматизацию не любительским способом - "снизу", как Вы это делаете сейчас, а "сверху" - так как это делают профессионалы... Почитайте журнал СТА, например...

Чем меньше Вы сейчас будете тратить время на ерунду вроде этой - "только допишу свое приложение", тем проще будет приблизиться к результату.

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

 

1. Я просто хочу сказать, что Вы сейчас идете вслепую совершенно неверным путем и делаете ненужную работу...

2. Существуют "программно совместимые" контроллеры. Например, Пром-РС.

 

Видите ли, для профессионалов все это давным давно пройдено... Вам же надо начать делать автоматизацию не любительским способом - "снизу", как Вы это делаете сейчас, а "сверху" - так как это делают профессионалы... Почитайте журнал СТА, например...

Чем меньше Вы сейчас будете тратить время на ерунду вроде этой - "только допишу свое приложение", тем проще будет приблизиться к результату.

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

 

1. Я просто хочу сказать, что Вы сейчас идете вслепую совершенно неверным путем и делаете ненужную работу...

2. Существуют "программно совместимые" контроллеры. Например, Пром-РС.

 

Видите ли, для профессионалов все это давным давно пройдено... Вам же надо начать делать автоматизацию не любительским способом - "снизу", как Вы это делаете сейчас, а "сверху" - так как это делают профессионалы... Почитайте журнал СТА, например...

Чем меньше Вы сейчас будете тратить время на ерунду вроде этой - "только допишу свое приложение", тем проще будет приблизиться к результату.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а на счет всего остального что вы конкретно советуете?

Вот конкретно я и написал в самом первом посте. Пока Вы внятно все не сформулируете - "мне надо сделать конкретно...", до тех пор все будет трепом.

Сядьте и нарисуйте диаграмму работы "системы управления".

Полностью. Со всеми режимами работы. Со всеми режимами управления. Потом найдите примеры аналогичных систем. А потом задавайте вопросы: "как это сделать".

Вы прочли о Гайке? Нет? Так действуйте. Это и для Вас написано!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот конкретно я и написал в самом первом посте. Пока Вы внятно все не сформулируете - "мне надо сделать конкретно...", до тех пор все будет трепом.

Сядьте и нарисуйте диаграмму работы "системы управления".

Полностью. Со всеми режимами работы. Со всеми режимами управления. Потом найдите примеры аналогичных систем. А потом задавайте вопросы: "как это сделать".

Вы прочли о Гайке? Нет? Так действуйте. Это и для Вас написано!!!

Хорошо. Можно с вами советоваться? Если вы не против оставьте мне контакты. Почту или скайп . Буду премного благодарен.

Изменено пользователем David_Ali

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо. Можно с вами советоваться? Если вы не против оставьте мне контакты. Почту или сайт. Буду премного благодарен.

Глухой композитор - помню был, а вот слепых инженеров я не помню...

26 тыс посетителей мой сайт нашли... А Вы спрашиваете "контакты"...

Да, уж... Странно, это мне...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Глухой композитор - помню был, а вот слепых инженеров я не помню...

26 тыс посетителей мой сайт нашли... А Вы спрашиваете "контакты"...

Да, уж... Странно, это мне...

Да нету у вас там скайпа.. И не стоит меня слепым называть. Вы меня совсем не знаете. Т9 исправил слово скайп на слово сайт, а вы сразу на личность перешли..

Изменено пользователем David_Ali

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да нету у вас там скайпа.. И не стоит меня слепым называть. Вы меня совсем не знаете. Т9 исправил слово скайп на слово сайт, а вы сразу на личность перешли..

David_Ali, Вы работаете на производстве. Решаете производственные задачи. Знаете как нужно решить конкретную задачу. Поэтому вам нужно, прежде всего, освоить навыки постановщика задачи. Научиться разрабатывать техническое залание, с помощью которого вы будете управлять процессом разработки. Иного пути нет. Освоить программирование, конечно, престижно и заманчиво. Коллеги будут вас уважать и начальство...

Но такой подход для освоения необходимого объёма знаний и опыта вам понадобится не менее 5 лет. Пока вы будете догонять знающих специалистов схемотехника изменится и вам понадобится ещё столько лет и т. д.

Разработка технического задания (ТЗ) это сложная наука. В правильно разработанном алгоритме, который должен быть частью ТЗ, содержится вся информация, которая небходима для разработки программы. Разработка программы по разработанному алгоритму называется кодированием, переводом слов алгоритма на коды конкретного микропроцессора.

Сейчас вы похожи на человека, который хочет построить дом и собирается в поход, чтобы найти месторождение глины, из которой он наделает кирпичей... Во всём мире всё построено на специализации. Слишком всё сложно, чтобы всё было под силу одному человеку.

Моё объявление в разделе этого сайта "Ищу работу" и вложенный файл помогут вам точнее понять смысл сказанного выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...