Задать вопрос
  • Есть ли хорошие книги на русском для изучения электроники\роботехники?

    Ардуино не советую трогать.
    1. Они сделаны на базе AVR микроконтроллеров, есть одна плата на базе ARM, но цена великовата, можно найти дешевле от других.
    2. Они программируются на собственной редакции С++ Wing. Он очень топорный из-за чего многие функции микроконтроллера использовать нельзя. К примеру прерывания ты не сделаешь без страшного гемора. Да и сам МК ты на этом языке не выучишь, уж слишком там все абстрагировано.
    Есть вариант конечно купить ардуиновскую плату, а проги на нее писать на чистом С или асме. Но в этом случае лучше купить аналогичные платы, дешевле выйдет. Я бы тебе предложил купить вот это STM32 DISCOVERY. Их там две разных есть, и обе будут дешевле ардуины на ARM. У них разница в мощности МК и количестве датчиков на плате.
  • Как решить проблему с прерываниями на ATMega328P-PU?

    @Ramirag Автор вопроса
    Проблема решена. Оказалось, что есть опечатка в datasheet. По данному коду, можно видеть, что на каждое прерывание у меня есть по два байта.
    0x0000 	jmp 	RESET 		; Reset Handler
    0x0002 	jmp 	EXT_INT0 	; IRQ0 Handler
    0x0004 	jmp 	EXT_INT1 	; IRQ1 Handler
    0x0006 	jmp 	PCINT0 		; PCINT0 Handler

    Только вот команда jmp занимает не 2, а 4 байта. В своей программе я использовал rjmp, который занимает 2 байта и как результат у меня вызывались не те прерывания, что должны были. Те выходит, что на самом деле таблица прерываний для моего мк будет выглядеть так.
    0x0000 	jmp 	RESET 		; Reset Handler
    0x0004 	jmp 	EXT_INT0 	; IRQ0 Handler
    0x0008 	jmp 	EXT_INT1 	; IRQ1 Handler
    0x000В 	jmp 	PCINT0 		; PCINT0 Handler
  • Как решить проблему с прерываниями на ATMega328P-PU?

    @Ramirag Автор вопроса
    Методом научного тыка пришел к такому открытию. Все адреса прерываний у меня опустились на 2
    Как в datasheet
    Address	Code 				Comments
    0x0000 	jmp 	RESET 		; Reset Handler
    0x0002 	jmp 	EXT_INT0 	; IRQ0 Handler
    0x0004 	jmp 	EXT_INT1 	; IRQ1 Handler
    0x0006 	jmp 	PCINT0 		; PCINT0 Handler
    0x0008 	jmp 	PCINT1 		; PCINT1 Handler
    0x000A 	jmp 	PCINT2 		; PCINT2 Handler
    0x000C 	jmp 	WDT 		; Watchdog Timer Handler
    0x000E 	jmp 	TIM2_COMPA 	; Timer2 Compare A Handler
    0x0010 	jmp 	TIM2_COMPB 	; Timer2 Compare B Handler
    0x0012 	jmp 	TIM2_OVF 	; Timer2 Overflow Handler
    0x0014 	jmp 	TIM1_CAPT 	; Timer1 Capture Handler
    0x0016 	jmp 	TIM1_COMPA 	; Timer1 Compare A Handler
    0x0018 	jmp 	TIM1_COMPB 	; Timer1 Compare B Handler
    0x001A 	jmp 	TIM1_OVF 	; Timer1 Overflow Handler
    0x001C 	jmp 	TIM0_COMPA 	; Timer0 Compare A Handler
    0x001E 	jmp 	TIM0_COMPB 	; Timer0 Compare B Handler
    0x0020 	jmp 	TIM0_OVF 	; Timer0 Overflow Handler
    0x0022 	jmp 	SPI_STC 	; SPI Transfer Complete Handler
    0x0024 	jmp 	USART_RXC 	; USART, RX Complete Handler
    0x0026 	jmp 	USART_UDRE 	; USART, UDR Empty Handler
    0x0028 	jmp 	USART_TXC 	; USART, TX Complete Handler
    0x002A 	jmp 	ADC 		; ADC Conversion Complete Handler
    0x002C 	jmp 	EE_RDY 		; EEPROM Ready Handler
    0x002E 	jmp 	ANA_COMP 	; Analog Comparator Handler
    0x0030 	jmp 	TWI 		; 2-wire Serial Interface Handler
    0x0032 	jmp 	SPM_RDY 	; Store Program Memory Ready Handler

    Как у меня
    Address	Code 				Comments
    0x0000 	jmp 	RESET 		; Reset Handler
    0x0002 	jmp 	EXT_INT0 	; хз
    0x0004 	jmp 	EXT_INT1 	; IRQ0 Handler
    0x0006 	jmp 	PCINT0 		; хз
    0x0008 	jmp 	PCINT1 		; IRQ1 Handler
    0x000A 	jmp 	PCINT2 		; хз
    0x000C 	jmp 	WDT 		; PCINT0 Handler
    0x000E 	jmp 	TIM2_COMPA 	; хз
    0x0010 	jmp 	TIM2_COMPB 	; PCINT1 Handler
    0x0012 	jmp 	TIM2_OVF 	; хз
    0x0014 	jmp 	TIM1_CAPT 	; PCINT2 Handler
    0x0016 	jmp 	TIM1_COMPA 	; хз
    0x0018 	jmp 	TIM1_COMPB 	; хз
    0x001A 	jmp 	TIM1_OVF 	; хз
    0x001C 	jmp 	TIM0_COMPA 	; хз
    0x001E 	jmp 	TIM0_COMPB 	; хз
    0x0020 	jmp 	TIM0_OVF 	; хз
    0x0022 	jmp 	SPI_STC 	; хз
    0x0024 	jmp 	USART_RXC 	; хз
    0x0026 	jmp 	USART_UDRE 	; хз
    0x0028 	jmp 	USART_TXC 	; хз
    0x002A 	jmp 	ADC 		; хз
    0x002C 	jmp 	EE_RDY 		; хз
    0x002E 	jmp 	ANA_COMP 	; хз
    0x0030 	jmp 	TWI 		; хз
    0x0032 	jmp 	SPM_RDY 	; хз

  • Как расшифровать абривеатуры ассемблерских команд AVR и ARM?

    @Ramirag Автор вопроса
    Я лох xD Меня чет на левые форумы вывело или просто перевода описаний команд на русском
  • Как взаимодействовать с XBee модулями?

    @Ramirag Автор вопроса
    Ну да, благодаря знанию программирования нет проблемы с построением алгоритмов. Но вот когда я вижу схему ввода-вывода, вот щас читаю про это, то мне становится страшно, тк некоторые элементы на схеме мне вообще не известны. А смысл того-же, подключаемого резистора на ввод от меня ускользает.
  • Как взаимодействовать с XBee модулями?

    @Ramirag Автор вопроса
    Спасибо, приму на заметку. Я щас тут сижу осваиваю AVR и электронику. Хочу сам на breadboard'е собрать все. Распиаренный arduino оказался не более, чем игрушкой :-( На пути к мне еще плата на Cortex M4. Понимаю, что немного ошибся кафедрой я. :-) Под бой курантов и речь Путина я читал книгу по электронике. До этого программировал на C# и C++. Подсадил на эту тему еще своего друга, что тоже С#/C++ программирует.
    А все выше описанное результат просьбы начальника посмотреть как использовать XBee xD В результате меняю свою специальность кардинально, тк мне это интересней
  • Как решить проблемы с системой охлаждения ноутбука ASUS U31SD?

    @Ramirag Автор вопроса
    Нафига красить медные трубки, причем не полностью.
  • Как решить проблемы с системой охлаждения ноутбука ASUS U31SD?

    @Ramirag Автор вопроса
    У меня в ноуте охлаждение воздухом, а не водой