Программирование МК AVR



Помечено: 

Просмотр 15 сообщений - с 16 по 30 (из 55 всего)
  • Автор
    Сообщения
  • #13888
    arkonen
    Участник

    Всех с новым годом . Товарищи помогите , подскажите как реализовать SNMP в AVR ? Или может статьи есть у кого то интересные где почитать можно ?

    #13933
    VladimirM
    Участник

    Здравствуйте. В ATmega328P есть регистры OCR0B, OCR0A у меня вопрос, если будет установлен режим сброс при совпадении, а значения в регистрах будут разные, получается что счётчик не дойдёт до второго числа в регистре которого число больше и будет всё время сбрасываться, так как регистр TCNT0 один,а регистра сравнения (OCR0B,OCR0A) два! Так ли это? Как они работают?

    #14621
    arkonen
    Участник

    Доброго времени суток , подскажите пожалуйста как можно безболезненно в AVR всунуть SNMP ?
    Может подскажите ссылки , ну или хотя бы направьте в нужное русло !

    #14623
    Ortos
    Участник

    Доброе время суток.
    Подскажите пожалуйста как подключить точку через 74hc595 для часов.
    Спасибо.

    #14780
    Leonid
    Участник

    Спасибо автору за его бескорыстную просвятительскую (надо сказать отлично выполненную) работу!

    Теперь, не совсем в тему, посмотрел на ваш урок в ютьюбе и честное слово, позавидовал работе вашего компьютера. Быстро, четко без задержек на внутренние задержки, даже при работе с «железом»! ВОПРОС, если не составит труда дайте конфигурацию вашего компа и операционной системы… Уж ОЧЕНЬ хочется такой же…

    #15095
    Selivanov
    Участник

    Владимир, добрый день!
    Свой вопрос я хотел бы начать с благодарности: большое спасибо за канал! Ещё недавно будучи студентом универа,
    я смотрел Ваши и ролики и, скажем так, набирался ума. Само собой, это пошло на пользу, и дисциплину, связанную с
    программированием МК, я закрыл на хорошую оценку.
    Теперь непосредственно вопрос: у Вас есть очень интересный цикл уроков про микроконтроллер STM32 и сетевой чип W5500.
    Скажите, пожалуйста, реально ли Ваш код переставить на «рельсы» AVR? Я пытался переделать его самостоятельно (я хочу
    поднять простой UDP сервер), но у меня ничего не выходит. Не могли бы вы дать несколько советов, как инициализировать
    чип на AVR (я, в частности, использую Atmega32)? Я делаю практически всё то же самое, но не знаю, в чём может крыться
    ошибка (может быть, даже неправильно написана функция передачи по SPI). Помогите, пожалуйста, уже почти месяц
    бьюсь над этой проблемой. Если что, могу даже скинуть свой код.
    Спасибо. Каким бы ни был результат, я обещаю задонатить, так как считаю, что такие полезные ресурсы должны иметь поддержку.

    #15096
    Narod Stream
    Хранитель

    Здравствуйте!
    А чип отзывается по SPI?

    #15099
    Selivanov
    Участник

    Этого я не проверял. Я написал функцию пересылки данных по SPI, и начал писать в регистры W5500 необходимые данные: ip, mac, порт и всё остальное. У меня, к сожалению, самый простой программатор, без отладчика, поэтому отладить код не могу. Наверное, мне стоит попробовать прочитать эти данные, чтобы удостовериться, что они действительно доходят до места назначения, но я даже не уверен, что пересылку организовал правильно. Код привожу ниже:

    Функция чтения точно такая же, за исключением того, что я по-другому формирую опкод (op|(RWB_READ<<2) и в конце не пересылаю данные в SPDR, а возвращаю их (return SPDR). Если можно как-нибудь по-другому проверить работоспособность чипа, то я буду рад об этом узнать.

    #15100
    Narod Stream
    Хранитель

    Проверьте отклик логическим анализатором

    #15749
    Yury
    Участник

    В уроке 20, часть 2 есть небольшая ошибка: в нескольких функциях мы запрещаем прерывания, но нигде их не разрешаем…

    #15758
    SergeyVT
    Участник

    Доброго времени суток, Narod Stream!Прошу разъяснить для меня простую вещь.
    В уроке про мигающий светодиод мы изучали побитовые операции И, ИЛИ, НЕ.Все вроде бы понятно.Но тут напрашивается вопрос, зачем Вы так усложнили код, тем более с обычным мигающим светодиодом?
    Ваш код
    #define F_CPU 8000000
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)
    {
    DDRD = 0xFF;
    PORTD = 0b00000000;
    while(1)
    {
    PORTD |= (1<<(PORTD0));
    _delay_ms(500);
    PORTD &= ~(1<<(PORTD0));
    _delay_ms(500);
    }
    }
    Мой код
    #define F_CPU 8000000// указываем частоту в герцах
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)// начало основной программы
    {
    DDRD = 0xFF;//Все выводы порта D будут сконфигурированы как выходы.
    PORTD = 0b00000000;//устанавливаем на всех ножках принудительно ноль(во избежание остаточного мусора в регистрах)
    while(1)
    {
    PORTD = 0b00000001;
    _delay_ms(500);//делаем задержку в пол секунды
    PORTD = 0b00000000;
    _delay_ms(500);//делаем задержку в пол секунды
    }
    }
    Хотя ведь можно было просто установить вот так как у меня и все так же работает.Если я не прав, то поясните в чем конкретно.Буду очень признателен.

    #15819
    tobaco
    Участник

    [b]SergeyVT[/b]
    Потому что в данном случае:
    PORTD |= (1<<(PORTD0));
    затрагивается только ножка на которой висит светодиод, а в вашем случае вы явно задаете состояние всех ног порта, что верно, но в случае если на другие ножки вешать что-то еще, то ваш код все это отключит.

    #15828
    SergeyVT
    Участник

    [b]tobaco[/b]Спасибо!

    #16078
    igrok_by
    Участник

    Всем привет.
    Недавно нашел канал. Давно хотел изучить АВРСТУДИЮ. Спасибо за понятное и полное обьяснение что куда и откуда.
    Хотелось бы уточнить будет ли продолжение про AVR???

    #16099
    mescenter
    Участник

    Добрый день!

    Пардон за оф-топик, но контактов на сайте не нашёл.
    Большая просьба к администратору сайта связаться со мной голосом или по почте, есть интересный разговор:
    Спасибо!

    Решетников Игорь
    MES-центр (Россия), Российская рабочая группа MESA International
    e-mail: @mescenter.ru">I.Reshetnikov@mescenter.ru
    тел.: +7 (916) 671-19-74
    Интернет: http://www.mescenter.ru

  • Автор
    Сообщения
  • #13888

    arkonen
    Участник
    • Оффлайн

    Всех с новым годом . Товарищи помогите , подскажите как реализовать SNMP в AVR ? Или может статьи есть у кого то интересные где почитать можно ?

    #13933

    VladimirM
    Участник
    • Оффлайн

    Здравствуйте. В ATmega328P есть регистры OCR0B, OCR0A у меня вопрос, если будет установлен режим сброс при совпадении, а значения в регистрах будут разные, получается что счётчик не дойдёт до второго числа в регистре которого число больше и будет всё время сбрасываться, так как регистр TCNT0 один,а регистра сравнения (OCR0B,OCR0A) два! Так ли это? Как они работают?

    #14621

    arkonen
    Участник
    • Оффлайн

    Доброго времени суток , подскажите пожалуйста как можно безболезненно в AVR всунуть SNMP ?
    Может подскажите ссылки , ну или хотя бы направьте в нужное русло !

    #14623

    Ortos
    Участник
    • Оффлайн

    Доброе время суток.
    Подскажите пожалуйста как подключить точку через 74hc595 для часов.
    Спасибо.

    #14780

    Leonid
    Участник
    • Оффлайн

    Спасибо автору за его бескорыстную просвятительскую (надо сказать отлично выполненную) работу!

    Теперь, не совсем в тему, посмотрел на ваш урок в ютьюбе и честное слово, позавидовал работе вашего компьютера. Быстро, четко без задержек на внутренние задержки, даже при работе с «железом»! ВОПРОС, если не составит труда дайте конфигурацию вашего компа и операционной системы… Уж ОЧЕНЬ хочется такой же…

    #15095

    Selivanov
    Участник
    • Оффлайн

    Владимир, добрый день!
    Свой вопрос я хотел бы начать с благодарности: большое спасибо за канал! Ещё недавно будучи студентом универа,
    я смотрел Ваши и ролики и, скажем так, набирался ума. Само собой, это пошло на пользу, и дисциплину, связанную с
    программированием МК, я закрыл на хорошую оценку.
    Теперь непосредственно вопрос: у Вас есть очень интересный цикл уроков про микроконтроллер STM32 и сетевой чип W5500.
    Скажите, пожалуйста, реально ли Ваш код переставить на «рельсы» AVR? Я пытался переделать его самостоятельно (я хочу
    поднять простой UDP сервер), но у меня ничего не выходит. Не могли бы вы дать несколько советов, как инициализировать
    чип на AVR (я, в частности, использую Atmega32)? Я делаю практически всё то же самое, но не знаю, в чём может крыться
    ошибка (может быть, даже неправильно написана функция передачи по SPI). Помогите, пожалуйста, уже почти месяц
    бьюсь над этой проблемой. Если что, могу даже скинуть свой код.
    Спасибо. Каким бы ни был результат, я обещаю задонатить, так как считаю, что такие полезные ресурсы должны иметь поддержку.

    #15096

    Narod Stream
    Хранитель
    • Оффлайн

    Здравствуйте!
    А чип отзывается по SPI?

    #15099

    Selivanov
    Участник
    • Оффлайн

    Этого я не проверял. Я написал функцию пересылки данных по SPI, и начал писать в регистры W5500 необходимые данные: ip, mac, порт и всё остальное. У меня, к сожалению, самый простой программатор, без отладчика, поэтому отладить код не могу. Наверное, мне стоит попробовать прочитать эти данные, чтобы удостовериться, что они действительно доходят до места назначения, но я даже не уверен, что пересылку организовал правильно. Код привожу ниже:

    Функция чтения точно такая же, за исключением того, что я по-другому формирую опкод (op|(RWB_READ<<2) и в конце не пересылаю данные в SPDR, а возвращаю их (return SPDR). Если можно как-нибудь по-другому проверить работоспособность чипа, то я буду рад об этом узнать.

    #15100

    Narod Stream
    Хранитель
    • Оффлайн

    Проверьте отклик логическим анализатором

    #15749

    Yury
    Участник
    • Оффлайн

    В уроке 20, часть 2 есть небольшая ошибка: в нескольких функциях мы запрещаем прерывания, но нигде их не разрешаем…

    #15758

    SergeyVT
    Участник
    • Оффлайн

    Доброго времени суток, Narod Stream!Прошу разъяснить для меня простую вещь.
    В уроке про мигающий светодиод мы изучали побитовые операции И, ИЛИ, НЕ.Все вроде бы понятно.Но тут напрашивается вопрос, зачем Вы так усложнили код, тем более с обычным мигающим светодиодом?
    Ваш код
    #define F_CPU 8000000
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)
    {
    DDRD = 0xFF;
    PORTD = 0b00000000;
    while(1)
    {
    PORTD |= (1<<(PORTD0));
    _delay_ms(500);
    PORTD &= ~(1<<(PORTD0));
    _delay_ms(500);
    }
    }
    Мой код
    #define F_CPU 8000000// указываем частоту в герцах
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)// начало основной программы
    {
    DDRD = 0xFF;//Все выводы порта D будут сконфигурированы как выходы.
    PORTD = 0b00000000;//устанавливаем на всех ножках принудительно ноль(во избежание остаточного мусора в регистрах)
    while(1)
    {
    PORTD = 0b00000001;
    _delay_ms(500);//делаем задержку в пол секунды
    PORTD = 0b00000000;
    _delay_ms(500);//делаем задержку в пол секунды
    }
    }
    Хотя ведь можно было просто установить вот так как у меня и все так же работает.Если я не прав, то поясните в чем конкретно.Буду очень признателен.

    #15819

    tobaco
    Участник
    • Оффлайн

    [b]SergeyVT[/b]
    Потому что в данном случае:
    PORTD |= (1<<(PORTD0));
    затрагивается только ножка на которой висит светодиод, а в вашем случае вы явно задаете состояние всех ног порта, что верно, но в случае если на другие ножки вешать что-то еще, то ваш код все это отключит.

    #15828

    SergeyVT
    Участник
    • Оффлайн

    [b]tobaco[/b]Спасибо!

    #16078

    igrok_by
    Участник
    • Оффлайн

    Всем привет.
    Недавно нашел канал. Давно хотел изучить АВРСТУДИЮ. Спасибо за понятное и полное обьяснение что куда и откуда.
    Хотелось бы уточнить будет ли продолжение про AVR???

    #16099

    mescenter
    Участник
    • Оффлайн

    Добрый день!

    Пардон за оф-топик, но контактов на сайте не нашёл.
    Большая просьба к администратору сайта связаться со мной голосом или по почте, есть интересный разговор:
    Спасибо!

    Решетников Игорь
    MES-центр (Россия), Российская рабочая группа MESA International
    e-mail: @mescenter.ru">I.Reshetnikov@mescenter.ru
    тел.: +7 (916) 671-19-74
    Интернет: http://www.mescenter.ru

Просмотр 15 сообщений - с 16 по 30 (из 55 всего)
  • Для ответа в этой теме необходимо авторизоваться.