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

aiwa

Участник
  • Публикаций

    303
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о aiwa

  • Звание
    Местный
  • День рождения 31.07.1964

Информация

  • Город
    Харьков

Посетители профиля

3 126 просмотров профиля
  1. Я имел ввиду не внутренний или внешний контроллер, а развитие именно нормального SDK. Имхо, необходимость внешнего контроллера отпадет: будет реализована возможность заливки внутрь прошивки пользователя с обменом по внутреннему каналу через телетайпный интерфейс.
  2. EAT, конечно же, удобная штука. Только мучают смутные сомнения по поводу его будущего.
  3. Странное поведение ATtiny26

    В даташите при описании ADLAR "Otherwise, ADCL must be read first, then ADCH."
  4. Странное поведение ATtiny26

    Чтение измерений АЦП в коде вообще отсутствуют, ибо осуществляются они исключительно командой "in r16,adcl". Ее надо поставить перед "in r16,adch".
  5. Так буквальный перевод subscript и означает индекс (нижний или верхний).
  6. Аппаратный SPI slave atMega8

    Не обращайте внимания. Похоже, что я исходя из первого поста сделал ложное предположение, что слейвом является Ваша программа, а не внешнее устройство. Соответственно маркеры относились к такому варианту.
  7. Аппаратный SPI slave atMega8

    Ничего от лукавого: на плате 162 мега была соединена по spi с основным контроллером и служила расширителем ком-портов. И по такому алгоритму прогонялись буфера нескольких протоколов. Грубо говоря, со стороны мастера spi можете представлять usart-ом, с оговоркой что для получения байта от RX нужно что-то загнать в TX: если у Вас есть что отослать - отсылайте посылку, если нечего - шлите 0xFF, с целью анализа полученого от слейва. 1. Отсылаете буфер команды. 2. Шлете некоторое количество 0xFF для получения от слейва маркера начала. 3. При получении во время 1. или 2. маркера начала засылаете 0xFF пока не вытащите от слейва весь буфер, если маркера не было. останавливаете обмен до следующей необходимости. Да и еще одно предостережение - при значительной разнице в частотах мастера и слейва, нужно предусмотреть эту разницу, мне пришлось между буфером и SPDR использовать регистр.
  8. Аппаратный SPI slave atMega8

    Все правильно: при записи в мастером в SPDR значения для посылки слейву, запускается механизм обмена и в результате которого из слейва передается записанное в SPDR ранее. По приему слейвом первого байта, в Вашем случае команды, первый байт из слейва уже пришел к мастеру - для передачи записанного байта для отправки нужна инициация обмена со стороны мастера. Тут два пути: записывать в SPDR байт для отправки заранее, либо со стороны мастера инициировать обмены пока не прийдет ожидаемый пакет. Имхо, лучше организовать обмен в стандартном режиме: маркер начала, длина данных, данные, контрольная сумма. Тогда у Вас отпадает необходимость в синхронизации запросов/ответов слейва. Мастер, отослав командный пакет, может некоторое время гнать незначащие байты, в надежде получить ответ.
  9. Вышла Atmel Studio 7

    Так об этом же и речь.
  10. Согласно 1-му пункту "подписки" это нелегально. Потому что в части выражения "index1[index2]..." один из этих индексов должен быть "pointer..." Если по шагам, то этот пример я хотел привести намного раньше, когда Вы в ((E1)+(E2)+5) предлагали видеть в 5-ке индекс второй размерности. Но я ошибочно начал тавтологию про типоразмеры. Но так как мне показалось, что мы толчем воду я его и привел с опозданием. Вы правы, если продолжить ряд , то должны прийти к правильному решению похожему на a[24][-64]. Или сразу применить формулу, по которой добавляя число к первому индексу, мы должны отнимать это число, умноженное на 5 от второго. 5 и выступает в качестве типоразмера. Имхо, пример хорошо иллюстрирует рекурсивность правила для многомерных массивов. Я не знаю стандарт достаточно хорошо. Помню в свое время всем отделом шерстили именно по указанной теме. Но похоже, что действует принцип: "разрешено все, что не запрещено". Поэтому использование "подписки" для указателя вполне законно. Только я не уверен, что термин в стандарте эквивалентен нашему пониманию "подписки". Ну я условно, для краткости, чтобы не писать присутствующее в каждом посте "pointer to....". Но почему Вы считаете, что они свернули не туда? Они реализовали "ассемблерные возможности" на высоком уровне. И это есть хорошо. И не дай бог они повернут туда: зачем нам третья java, или четвертый шарп?
  11. Нет. Оператор [] значится как postfix-operator и определен для "array subscripting". Это признак массива. "Почти всегда" следует потому в случае оператора sizeof, согласно которому имя_массива преобразуется в тип "массив заданной размерности", в остальных случаях имя_массива преобразуется в &имя_массива[0].
  12. Та там всего три абзаца, из которых следует вывод, что имя массива почти всегда (за исключением, например, sizeof правила для которого обговорены в отдельном пункте) преобразуется в указатель на первый элемент массива причем того же типа. С дальнейшими правилами действий для такого указателя. Таким образом из выражений *((E2+5)+E1), ((E2)+5+(E1)) и подобных невозможно что-либо утверждать про размерности массива. Никаких указателей на не массив и прочее. Так название главы означает что оператор [] применим только для доступа к элементам массива.
  13. В оригинале сказано именно массив, что эквивалентно указателю на первый элемент: "if E1 is an array object (equivalently, a pointer to the initial element of an array object)" Но если массив или имя массива смотрятся как синонимы, то "прибавление к имени массива" как-то не комильфо. Ну да, отвлекся и написал для массива 4x4, правильно было бы а[0][24] и a[24][0]. Но не важно, - главное, что коммутативность арифметики с указателем приводит к такому побочному эффекту. Поэтому не стоит это ставить во главу угла.
  14. Не путайте терминологию: имя массива - это идентификатор, арифметические с которыми бессмыслены. Приведенные Вами два примера отличаются лишь небольшой деталью. Во втором Вы сами используете указатель, а в первом тот же указатель получается "implicitly" - согласно стандарту: "by converting an array name to a pointer". Ну да, про коммутативность это понятно - побочный эффект. Равно как по той же причине в массиве размерности 5x5 доступ к "последнему" элементу a[4][4] вполне может быть реализован как a[15][0] или a[0][15].
  15. Вышла Atmel Studio 7

    Лиха беда - начало: AFS3 все еще доступна в новой реализации через скачивания файла afs-standalone-archive-3.42.0.77.zip размером аж в 0 байт.