Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190

Первая прошивка МК и ноль эмоций

30.09.2012, 00:11. Показов 4504. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, у меня первый опыт с микроконтроллерами.
Я купил ATMega16A, собрал под него тестовую схему со стабилизированным питанием на 7805, кнопочкой ресет, кварцем, сделал программатор 5 проводков.
Скачал ATM Studio 6 с сайта, создал наипростейший проект с++(именно на ++ захотелось проверить), сделал RELEASE, получившийся PROG1.hex перенес на ноут с ЛПТ портом и ХР.
На ноут с ХР поставил ponyProg, произвел READ, все ОК, произвел WRITE, результат тоже положительный. Снова READ, ура, данные есть.
Выходит что прошивается.
Но! Когда отключаю от программатора плату, и втсавляю в любой из портов мультиметр, он показывает 1 с небольшим. Хотя по прошивке только PB1 должен отдавать, или я не поннимаю принципа действия?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <avr/io.h>
    
int main(void)
{
      DDRB  = 1;
      PORTB = 255;
    while(1)
    {
 
        PORTB = 255;
 
        //TODO:: Please write your application code 
    }
}
Пробовал ставить PORTB =1, тот же эффект.
Помогите разобраться немного. DDRB отвечает за количество ножек в порту на вывод/ввод? А PORTB за количество тока на порт? Как повлиять на конкретную ножку? И еще, если ставить светодиоды от ножки, то перед ним нужен резистор?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2012, 00:11
Ответы с готовыми решениями:

Radeon HD3650: кулер крутится, но монитор выдает ноль эмоций и система тоже не загружается
Народ такая ситуация : сгорел старый радик 9600ХТ , все остальное осталось цело ( ставлю еще более старого динозавра и все работает). Купил...

Первая прошивка STM32F429ZI
День добрый! На днях пришла плата STM32F429I-DISC1 для начала знакомства с контроллерами, но возникла проблема при попытках первой...

MsChart - Первая точка видимой на экране части графика всегда уходит в ноль
первая точка видимой на экране части графика всегда уходит в ноль. Если я соответственно зумирую chartArea то все равно первая точка уходит...

32
108 / 16 / 2
Регистрация: 09.03.2011
Сообщений: 37
01.10.2012, 23:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Grey Посмотреть сообщение
Прозвони кнопку. Вероятно контакты замкнуты.
Согласен. А вообще можно вполне обходится и без кнопочного Ресета.
0
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
01.10.2012, 23:53  [ТС]
Все, всем спасибо, буду учить!
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
01.10.2012, 23:54
Цитата Сообщение от Antifritz Посмотреть сообщение
если по науке, то это резистивный делитель.
Резестивный делитель состоит из двух резисторов.
А в данном случае резистор ограничивает ток через замкнутую кнопку. Иначе будет замыкание. Напряжение питания замкнёте кнопкой на корпус.
1
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
02.10.2012, 16:37
Цитата Сообщение от zoomerland Посмотреть сообщение
Но! Когда отключаю от программатора плату, и втсавляю в любой из портов мультиметр, он показывает 1 с небольшим. Хотя по прошивке только PB1 должен отдавать, или я не поннимаю принципа действия?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <avr/io.h>
    
int main(void)
{
      DDRB  = 1;
      PORTB = 255;
    while(1)
    {
 
        PORTB = 255;
 
        //TODO:: Please write your application code 
    }
}
Пробовал ставить PORTB =1, тот же эффект.

конечно у тебя так будет ты же работаешь со всеми портами "B" ,а не с конкретным пином....
Сейчас не вспомню но надо как то так

PORTB.1 = 255;

Добавлено через 33 секунды
точнее вечером отвечу

Добавлено через 1 минуту
и кстати пони прог перед использованием надо калибровать.....

Добавлено через 2 минуты
Вот программа на языке СИ для того, чтобы это начало работать (// это пояснения, их программа не читает):

#include <mega8.h>// хэдер файл, он обязателен, для каждого мк он индивидуален(лежит в папке с программой для прошивки МК)
#include <delay.h>// библиотека для того, чтобы делать паузы в процессе выполнения программы(тоже лежит с программой)
void main(void)
{//Начало основной программы
DDRB =0xff;//настраиваем выходы B на лог.единицу
while(1)
{//открытие бесконечного цикла
PORTB.1=1;//выход PB1 лог.единицы
PORTB.3=0;//выход PB3 лог.0
delay_ms(1000);//пауза 1с
PORTB.1=0;// выход PB1 лог.0
PORTB.3=1;//выход PB3 лог.единицы
delay_ms(1000);//пауза 1с
}//закрытие бесконечного цикла
}//закрытие программы
воть в нете нашел
0
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
02.10.2012, 20:01  [ТС]
конечно у тебя так будет ты же работаешь со всеми портами "B" ,а не с конкретным пином....
Ну, в том коде же я указал DDRB=1, что делает только 1 ножку - ножкой вывода, или все равно?

Проблема оказалась в ресете, правда с исправленным ресетом ту прошивку не пробовал.
0
28 / 28 / 4
Регистрация: 23.02.2012
Сообщений: 104
02.10.2012, 21:01
Цитата Сообщение от zoomerland Посмотреть сообщение
Ну, в том коде же я указал DDRB=1, что делает только 1 ножку - ножкой вывода, или все равно?
Почитай на счет этого вот эту статью. Когда я начинал, она мне очень помогла.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
02.10.2012, 21:24
Цитата Сообщение от Санек25 Посмотреть сообщение
PORTB.1 = 255;
Это как ты в один бит 8 бит собрался записать
Цитата Сообщение от Санек25 Посмотреть сообщение
конечно у тебя так будет ты же работаешь со всеми портами "B"
А что их несколько?
есть порт "B" а у него 8 ножек "пинов"как ты сказал
Цитата Сообщение от Санек25 Посмотреть сообщение
и кстати пони прог перед использованием надо калибровать.....
Переведи

Цитата Сообщение от Санек25 Посмотреть сообщение
воть в нете нашел
потеряй обратно
с такими комментариями она нахрен не нужна

особенно вот этот

Цитата Сообщение от Санек25 Посмотреть сообщение
DDRB =0xff;//настраиваем выходы B на лог.единицу
настроить можно на вход или на выход (в данном случае на выход)
а что значит на лог.единицу

вот это тоже улыбнуло
Цитата Сообщение от Санек25 Посмотреть сообщение
while(1)
{//открытие бесконечного цикла
как можно открыть цикл
главное бесполезный комментарий
как и эти
Цитата Сообщение от Санек25 Посмотреть сообщение
PORTB.1=1;//выход PB1 лог.единицы
PORTB.3=0;//выход PB3 лог.0
тавтология, комментарий повторяет код
0
02.10.2012, 21:47

Не по теме:

Цитата Сообщение от ValeryS
Цитата Сообщение от Санек25
и кстати пони прог перед использованием надо калибровать.....
Переведи
Установки -> Калибровка:

0
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
03.10.2012, 08:48
Это как ты в один бит 8 бит собрался записать
согласен тут я в попыхах не то написал надо было так PORTB.1 = 1; //первый пин порта В открыт
PORTB.1 = 0; //первый пин порта В закрыт

А что их несколько?
есть порт "B" а у него 8 ножек "пинов"как ты сказал
имелось ввиду со всеми пинами порта В. Это я думаю уже придирка и так ясно что имелось ввиду

Но! Когда отключаю от программатора плату, и втсавляю в любой из портов мультиметр, он показывает 1 с небольшим. Хотя по прошивке только PB1 должен отдавать, или я не поннимаю принципа действия?
кстати автору темы и требовалось, чтобы работал только 1 пин порта В, а не весь порта В

и кстати пони прог перед использованием надо калибровать.....
при первом запуске пони прог необходимо производить калибровку. При последующих нет...

потеряй обратно
с такими комментариями она нахрен не нужна особенно вот этот
Так выложите с лучшими комментариями. Мне лично там все понятно, хотя я тоже начинающий в программировании для мк

настроить можно на вход или на выход (в данном случае на выход)
а что значит на лог.единицу
что за лог.единицу единица ответить не могу , но суть думаю и без этого ясна

как можно открыть цикл
главное бесполезный комментарий
как и эти

тавтология, комментарий повторяет код
Ну это лично вас улыбнуло , а когда я начинал и каждая строчка кода была как целое препятствие то я и такому коментарию был бы рад...

П.С. Вы бы лучше чем чужие сообщения обсуждать взяли бы и помогли человеку или бы поправили меня и выложили бы правильные коментарии...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
03.10.2012, 11:40
Санек25, raxp, насчет "пони прог" действительно не знал
я пользуюсь CodeVisionAVR с его встроенным программатором
"Век живи- век учись" спасибо ( но надеюсь мне это не понадобится)

Цитата Сообщение от Санек25 Посмотреть сообщение
Вы бы лучше чем чужие сообщения обсуждать взяли бы и помогли человеку
так он уже решил свою проблему
Цитата Сообщение от zoomerland Посмотреть сообщение
Да, все оказалось почти так. Убрал конденсатор с ресета, ноль эмоций, выдернул ресет в принципе - все замигало! Спасибо огромное!
Значит дело либо в резисторе, либо в кнопке. Не удивлюсь если ножки кнопки банально не дотягиваются до контактов

Цитата Сообщение от Санек25 Посмотреть сообщение
имелось ввиду со всеми пинами порта В. Это я думаю уже придирка и так ясно что имелось ввиду
нет не ясно вот твое первое сообщение

Цитата Сообщение от Санек25 Посмотреть сообщение
конечно у тебя так будет ты же работаешь со всеми портами "B" ,а не с конкретным пином....
это не описка, это не понимание как работают порты в АВРке
Цитата Сообщение от Санек25 Посмотреть сообщение
Так выложите с лучшими комментариями. Мне лично там все понятно,
где ж понятно то ?
Цитата Сообщение от Санек25 Посмотреть сообщение
что за лог.единицу единица ответить не могу ,
тем более что комментировать чужой код(написанный коряво) у меня желания нет
информации навалом
вот статья которая с нуля позволяет писать на Си
http://www.xakep.ru/magazine/xa/127/104/1.asp
Вот сайт который расписывает что такое АВРки
http://123avr.com/
вот для работы в AVR Studio
http://easyelectronics.ru/avr-... ast-1.html
да еще куча информации в инете валяется (лень все искать)
0
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
03.10.2012, 12:53
За ссылки спасибо особенно за первую.

это не описка, это не понимание как работают порты в АВРке
я никогда в грудь себя и не бил, что все знаю и понимаю... Институтов по программированию и радио делу не заканчивал, потому и не могу научном языке и изъясняться.

где ж понятно то ?
тем более что комментировать чужой код(написанный коряво) у меня желания нет
Интересно что в вашем понимании хороший полный ответ?.. Можите привести пример. А то сколько по сайтам не ходил все по типу того что я выложил. Делаю вывод из этого что примеров кода с хорошим описанием не так уж и много...

К тому же считаю, что у ТС необходимо помимо схемы, так же надо было поправить код...Так было бы правильнее...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
03.10.2012, 14:21
Санек25, вот переписал твою прогу со своими комментариями, посмотри понятно или нет

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <mega8.h>//файл описания регистров микроконтроллера
 #include <delay.h>//файл реализующий функции задержки
 void main(void) // главная функция программы
 {
 DDRB =0xff;//тоже что и DDRB =255 все выводы порта  B работают на вывод если был бы ноль работали б на ввод
 PORTB.1=1;//записываем в PB1 1 на выводе лог 1 (+5в)
 PORTB.3=0;//записываем в PB3 0 на выводе лог 0 (0в)
 while(1)//бесконечный цикл нам из него никогда не выйти 
 {
   delay_ms(1000);//пауза 1с функция реализована в delay.h
   PORTB.1=~PORTB.1;//инвертирование значение на  PB1(была 1 стал 0 и наоборот)
   PORTB.3=~PORTB.3;//инвертирование значение на  PB3(был 0 стала 1 и наоборот)
  }
 
}//конец главной функции программы
вот ссылка что такое delay.h
http://avr-libc.narod.ru/group__util__delay.html
вот еще сайт про работу с avr
http://avr-libc.narod.ru/


raxp, посмотри на ссылки если они устраивают, то закинь куда нибудь в ФАК
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
03.10.2012, 14:25
Тема закрыта во избежание флуда и выяснения отношений.

Не по теме:

Большинство прикрепленных FAQ-ов открыты для доступа.

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2012, 14:25

Первая прошивка микроконтроллера AVR
Всем привет! Имеется плата управления прибором на базе микроконтроллера Atmega2560. Приключилась такая ситуация: Первую прошивку...

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

Распознавание эмоций
Всем доброго времени суток Есть вот такая нейронная сеть import random import pandas as pd import numpy as np import...

Химизм наших эмоций
Вы когда-нибудь задавались вопросом, почему человек радуется и огорчается, бывает счастливым и расстроенным?! Кажется, чего проще – получил...

Построить ε-НКА, допускающий язык, состоящий из цепочек, имеющих ноль или несколько а, ноль или несколько b, ноль или несколько с.
Построить ε-НКА, допускающий язык, состоящий из цепочек, имеющих ноль или несколько а, ноль или несколько b, ноль или несколько с.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Закрытая тема Создать тему
Новые блоги и статьи
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru