AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на СИ

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на СИ

Сообщение sunjob »

добрый день

Код: Выделить всё

- printf() c-version (no c++)
- no Arduino library
- arm-gcc toolchain & std library
т.к. контроллер относится к SAM, то "обычным" способом запустить печать не получилось

Код: Выделить всё

_FDEV_SETUP_WRITE was not declared in this scope
... ну кто-бы сомневался?! :о)

в инете нашел единственный вариант для SAM

sam printf
Simple print functions for Atmel SAM microcontrollers using DMA

в описании указан "наш чип" как протестированый
собирается без проблем (кроме варнингов, возможно следует присмотреться?!, undefined reference - это не хухры мурхры)
печать не работает (пробовал по разному)

варнинги (пути к тулчейну усечены, для удобства восприятия)
Спойлер

Код: Выделить всё

...
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-fstatr.o): in function `_fstat_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/fstatr.c:55: warning: undefined reference to `_fstat'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-isattyr.o): in function `_isatty_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/isattyr.c:52: warning: undefined reference to `_isatty'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-sbrkr.o): in function `_sbrk_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/sbrkr.c:51: warning: undefined reference to `_sbrk'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-writer.o): in function `_write_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/writer.c:49: warning: undefined reference to `_write'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-closer.o): in function `_close_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/closer.c:47: warning: undefined reference to `_close'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-lseekr.o): in function `_lseek_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/lseekr.c:49: warning: undefined reference to `_lseek'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-readr.o): in function `_read_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/readr.c:49: warning: undefined reference to `_read'
...
проект "перенесен" от сюда

sam3 Low Level prg-ing
Low level" programming of the Arduino DUE SAM3 controller with a custom IDE

в нем используются arduino-sam библиотеки

Код: Выделить всё

~/.arduino15/packages/arduino/hardware/sam/1.6.12
makefile немного подрихтовал под себя (библиотеки не копируются в каталог проекта, а используются "как-есть", установленные в систему
Спойлер

Код: Выделить всё

#///////////////////////////////////////////////////////////////////////////////
# arduino toolchain version's
#///////////////////////////////////////////////////////////////////////////////
ARD_SAM_VER = 1.6.12
ARD_ARM_VER = 4.8.3-2014q1
ARD_BOS_VER = 1.6.1

#///////////////////////////////////////////////////////////////////////////////
# arm toolchain version -> ~/dev.bin.arm/
#///////////////////////////////////////////////////////////////////////////////
#ARM_VER_DEF    = 5.2.1
#ARM_VER_DEF    = 11.2
 ARM_VER_DEF    = 11.3
#ARM_VER_DEF    = 12.2
 ARM_VER       ?= $(ARM_VER_DEF)

#TOOL_CHAIN_DEF = ARDUINO
#TOOL_CHAIN_DEF = ARM_DEF
 TOOL_CHAIN_DEF = ARM
 TOOL_CHAIN    ?= $(TOOL_CHAIN_DEF)

#///////////////////////////////////////////////////////////////////////////////
# post
#///////////////////////////////////////////////////////////////////////////////
ARD         = $(HOME)/.arduino15/packages/arduino
SAM         = $(ARD)/hardware/sam/$(ARD_SAM_VER)
SAM_SYS     = $(SAM)/system
...
INC += -I$(PRJ_DIR)/inc
INC += -I$(PRJ_DIR)/lib
INC += -I$(PRJ_DIR)/src
INC += -I$(SAM_SYS)/
INC += -I$(SAM_SYS)/libsam
INC += -I$(SAM_SYS)/libsam/include
INC += -I$(SAM_SYS)/CMSIS/CMSIS/Include
INC += -I$(SAM_SYS)/CMSIS/Device/ATMEL
#
INC += -I$(SAM)/cores/arduino
...
#///////////////////////////////////////////////////////////////////////////////
# Toolchain: ARM | Arduino & Include
#///////////////////////////////////////////////////////////////////////////////
ifeq ($(TOOL_CHAIN),ARM_DEF)
_P    = /usr/bin/arm-none-eabi-
else
ifeq ($(TOOL_CHAIN),ARM)
_P    = $(HOME)/dev.bin.arm/$(ARM_VER)/bin/arm-none-eabi-
else
_P    = $(ARD)/tools/arm-none-eabi-gcc/$(ARD_ARM_VER)/bin/arm-none-eabi-
endif
endif

#BOSSA = $(ARD)/tools/bossac/$(ARD_BOS_VER)-arduino/bossac
BOSSA = bossac

AR    = $(_P)ar
CC    = $(_P)gcc
CXX   = $(_P)g++
AS    = $(_P)as
NM    = $(_P)nm
LKELF = $(_P)g++
OBJCP = $(_P)objcopy
SIZE  = $(_P)size
STRIP = $(_P)strip
toolchain пробовал разные версии

Код: Выделить всё

arm-none-eabi
- 11.2
- 11.3
- 12.2
- 5.2.1
так-же arduino-toolchain

Код: Выделить всё

~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-XXX
версия toolchain выбирается установкой

Код: Выделить всё

TOOL_CHAIN_DEF = ARDUINO
TOOL_CHAIN_DEF = ARM_DEF
TOOL_CHAIN_DEF = ARM
p.s.
понимаю, что можно взяться разгрызать
- реализацию класса Arduino-Due/Serial.xxx
- реализацию стандартной печати в asf-library

и то и другое, понятное дело, работает, но хотелось-бы пока разобраться с данной библиотекой

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

!!! ADD !!!
ТЕСТИРОВАЛ ЭТУ И МНОГИЕ ДРУГИЕ ПОДОБНЫЕ БИБИЛИОТЕКИ, НИ ОДНА НЕ РАБОТАЕТ
УТОЧНЯЮ - КОНТРОЛЛЕР SAM3X8E


спасибо

#tag: avr atmel arduino due printf c arm-gcc asf
Последний раз редактировалось sunjob Вт окт 04, 2022 05:53:16, всего редактировалось 1 раз.
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

На Си для микроконтроллеров завсегда применялся sprintf, принимающий конкретный указатель на буфер для сформированной строки.
DMA тут как бы и не при делах, ибо задача sprintf - только сформировать текстовую строку, а отправить её куда-либо - это уже другая зона ответственности, так сказать..
Реклама
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

продолжай! как это поможет "отцу русской демократии"? :о)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15585
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение BOB51 »

Жаль такой платки в наличии нету...
Обычно проблем с выводом на терминал у адуринок (в том числе и на платформах STM32) не имеется...
Может с установкой самой платформы чего не так или с выборкой варианта применения - там и последовательных портов больше и их разновидностей...
:dont_know:
Реклама
Эиком - электронные компоненты и радиодетали
tonyk
Это не хвост, это антенна
Сообщения: 1323
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение tonyk »

MLX90640 писал(а):На Си для микроконтроллеров завсегда применялся sprintf
Подтяни свои скилы и начни использовать printf(). :)))

Подсказка: printf() может быть буферизован и использовать алгоритм Нэйгла для выдачи информации на устройство её отображения.
Реклама
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Мои скилы находятся на достаточном уровне для того, чтобы самостоятельно написать буферизацию, ибо printf - это не только вывод в терминалку, но и формирование текста для отображения на дисплее. Стандартного порта вывода в МК нет, поэтому программист сам определяет направление вывода текста.
Реклама
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

datasheet cut

34. Universal Asynchronous Receiver Transceiver (UART)
34.1 Description

The Universal Asynchronous Receiver Transmitter features a two-pin UART that can be used for communication and trace purposes and offers an ideal medium for in-situ programming solutions. Moreover, the association with two peripheral DMA controller (PDC) channels permits packet handling for these tasks with processor time reduced to a minimum.

35. Universal Synchronous Asynchronous Receiver Transmitter (USART)
35.1 Description

The USART supports the connection to the Peripheral DMA Controller, which enables data transfers to the transmitter and from the receiver. The PDC provides chained buffer management without any intervention of the processor.
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение Мурик »

MLX90640, все правильно пишет.
Получаете форматированный текст функцией sprintf или аналогичной и делаете с ним что хотите. Хоть в USART через DMA передавайте.

Библиотеки ардуины выбросьте!
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Посмотрел файл print.c по ссылке. Тьфу ты блин! Я то думал, речь шла о стандартной сишной функции printf, которая капец какая навороченная и использует стандартный буфер вывода. Но тут оказалось всё настолько банально и примитивно, что прям ну ваще, как там можно было запутаться то в трех березах то? Обычные самописные функции преобразования целого числа в текстовую ANSI-строку и передача этой строки в функцию отправки по UART-у с кольцевым буфером.
Просто скопируйте текст функций в чистый файл и скомпилируйте.
Следует различать стандартный printf и самописный print.
tonyk
Это не хвост, это антенна
Сообщения: 1323
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение tonyk »

Мурик писал(а):Получаете форматированный текст функцией sprintf
Если используется стандартная библиотека ввода-вывода языка Си, на что указывает использование sprintf(), то логичным будет реализация обработки вызовов _read(),_write() и иже с ними, что позволит осуществлять ввод-вывод хоть куда, используя все функции файлового ввода-вывода, в том числе и printf(), которая обычно является обёрткой для fprintf( stdout, ...). И тогда будут не нужны промежуточные представления выводимых строк.
В GCC, например, библиотека резервирует место под 20 файловых дескрипторов, из которых сама использует только 3, оставляя пользователю 17.
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Скажем так... в условиях микроконтроллеров далеко не всегда нужны методы "больших компутеров", поэтому нередко используют облегченные варианты вывода, необходимые в конкретном случае. В честности, при отправке по УАРТу в большинстве случаев нужно "здесь и сейчас". А при отрисовке на дисплее может потребоваться либо вывод одного-двух чисел, либо формирование всего кадра, да еше и вместе с графикой. В таких случаях лучше вручную управлять процессом вывода в конкретной ситуации. Ну а если семисегментный индикатор, там вообще достаточно самописного легкого преобразования числа в цифры по знакоместам.
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

[uquote="Мурик",url="/forum/viewtopic.php?p=4298997#p4298997"]Библиотеки ардуины выбросьте![/uquote]
повторение... мать учения... :))
- printf() c-version (no c++)
- no Arduino library
- arm-gcc toolchain & std library
может я не туда написал, но это условие присутствует... :beer:

Добавлено after 5 minutes 8 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=4298997#p4298997"]... и делаете с ним что хотите. Хоть в USART через DMA передавайте[/uquote]
с этим и проблемы... через регистры пока на получается...
по идее нужно "стандартно" переопределить функцию "put(),_read(),_write()... etc", и далее все "стандартно" ... 8)

Добавлено after 28 minutes 42 seconds:
[uquote="MLX90640",url="/forum/viewtopic.php?p=4299082#p4299082"]Просто скопируйте текст функций в чистый файл и скомпилируйте.
Следует различать стандартный printf и самописный print.[/uquote]
ну не надо считать себя самым умным котом! :))) чай не дураки тут шерсть чешут и просто тусуются :beer:

если "это" не подразумевается как "само собой" то пишу явно :
ТЕСТИРОВАЛ ЭТУ И МНОГИЕ ДРУГИЕ ПОДОБНЫЕ БИБИЛИОТЕКИ, НИ ОДНА НЕ РАБОТАЕТ
УТОЧНЯЮ - КОНТРОЛЛЕР SAM3X8E

с обычным avr контроллером (328-2560) - вопросов нет

в данном топике слово "Arduino-Due" используется как указатель чипа/прототипа (а не саму манда-рино "среду/библиотеки/ide")

спасибо
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Azeront
Родился
Сообщения: 3
Зарегистрирован: Сб окт 10, 2020 10:40:26

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение Azeront »

[uquote="sunjob",url="/forum/viewtopic.php?p=4299305#p4299305"]ТЕСТИРОВАЛ ЭТУ И МНОГИЕ ДРУГИЕ ПОДОБНЫЕ БИБИЛИОТЕКИ, НИ ОДНА НЕ РАБОТАЕТ[/uquote]

Вы абсолютно уверены в том, что не работает только библиотека? Все остальные "нижележащие" механизмы работают? А именно:
1) По ссылке из первого поста на используемую библиотеку есть необходимые шаги для настройки этой самой библиотеки. Вы выполнили их все (8 пунктов)? Никакого пояснительного кода в первом сообщении по этому поводу от вас не было.
2) Вы уверены в электрической работоспособности пинов, на которые выведен UART? Т.е. вы загружали тестовый код "моргания" ножками, и с помощью осциллографа/вольтметра/светодиода удостоверились, что выдача сигнала есть, и она корректна?
3) Вы удостоверились в работе UART? Т.е. вы загружали тестовый код, в котором корректно настраивали GPIO (для работы пинов в режиме коммутации к UART), тактирование (для корректного задания бод-рейта) и собственно сам UART (включение/тактирование внутренних узлов/четность/стоп-биты/и т.д.), после чего циклически посылали 1 байт и отслеживали его (через осциллограф/лог.анализатор/преобразователь UART-USB и терминал на компьютере)?
4) Вы удостоверились в работе DMA? Т.е. после успешного выполнения предыдущего пункта вы внимательно изучили мануал на ваш контроллер, зашили тестовую прошивку из предыдущего шага, но настройкой соответствующего канала DMA, которая циклически отсылает пакет из нескольких байт, и также успешно отследили его?
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Azeront, у него не собирается проект, так что до работоспособности железа тут еще далеко.
Топикстартеру следует создать чистый Си-проект с этим МК, ничего не добавляя в проект и попробовать собрать. При успешной сборке продолжить дальше и написать

Код: Выделить всё

#include <stdio.h>
int main(void)
{
    printf("0123");
    while(1);
}
и проверить сборку. Если успешно, тогда "дело было не в бобине". Если с ошибками, тогда что-то с совместимостью и косяком в IDE, либо проблема в неверной настройке проекта.
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

> у него не собирается проект
приколный ты, полосатый! цепь и дуб уже приобрел?!
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Чёт не понял смысла этих слов. Всё ещё не отпустило штоль?
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

> не понял смысла этих слов
потому как шибко ученый, по цепи ходишь вокруг дуба и сказки налево и направо гутаришь... (учите классику, и меньше фантазируйте)

> у него не собирается проект
это из каких таких сказочных мыслей вывод сделали?!

> Всё ещё не отпустило штоль?
это вы правильный вопрос задали себе ...
если что по делу - пишите, а так общайся сам с собой, зеркало имеется у хозяина?! :о)

> Топикстартеру следует создать чистый Си-проект с этим МК
не видишь разницу между стандартной реализацией и PDC/DMA?
естественно вылезут анрезолвы _put_/_write_, но это из другой оперы.

Azeront, спасибо, первые 3 пункта можно было опустить сразу :о), затык сейчас с DMA (нормальная работа пока только в asf, пытаюсь сделать без нее)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение MLX90640 »

Странный этот sunjob. Сам себе придумал проблему на пустом месте, со стандартным именем printf, чисто для ЧСВ.
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 618
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: AVR Atmel SAM3x8E / Arduino Due - реализация pritnf() на

Сообщение sunjob »

ув. MLX90640! поакуратнее на поворотах... :sleep:
а вот
Странный этот sunjob
правильно, значит все таки послушался, взял у хозяина зеркало, общаешься... молодец!
реализуй работу ком-порта через DMA - будешь вообще умничка и хоть за тешься ЧСВ :shock:
я первый отдам тебе на царапки свои любимые хозяйские тапочки

исходные
- sam3x8e
- no asf library
- no printf and std
- DMA/PDC

уточняю, обычная asf-реализация работает без проблем, нужно низкоуровневый вариант через DMA (например, указанная бибилотека)

если по делу нечего... то лучше царапками займитесь, на кухне чашками, проверьте лоток, мышку под шкафом... столько дел еще не переделанных :)))

p.s. ай молотцы, нашЛепали! :))) :))) :))) кроме минусов еще что-нить можем? :facepalm:

DMA заработал!

Код: Выделить всё

////////////////////////////////////////////////////////////////////////////////
void uart_ini_baud(int32_t baud)
////////////////////////////////////////////////////////////////////////////////
{
//###!!!
// direct access to PIO
//###!!!
PIOA->PIO_IDR   =   PIO_PA8A_URXD | PIO_PA9A_UTXD;
PIOA->PIO_PDR   =   PIO_PA8A_URXD | PIO_PA9A_UTXD;
PIOA->PIO_ABSR &= ~(PIO_PA8A_URXD | PIO_PA9A_UTXD) & PIOA->PIO_ABSR;
PIOA->PIO_PUER  =   PIO_PA8A_URXD; // | PIO_PA9A_UTXD;

PMC->PMC_WPMR       = 0x504D4300;
PMC->PMC_PCER0      = (1 << PF_ID_UART);
PMC->PMC_WPMR       = 0x504D4301;
PF_UART->UART_CR    = UART_CR_RXDIS | UART_CR_TXDIS | UART_CR_RSTRX | UART_CR_RSTTX | UART_CR_RSTSTA;
PF_UART->UART_BRGR  = (MCLK / baud / 16);
PF_UART->UART_MR    = UART_MR_PAR_NO  | UART_MR_CHMODE_NORMAL; 
PF_UART->UART_PTCR  = UART_PTCR_RXTEN | UART_PTCR_TXTEN;
PF_UART->UART_CR    = UART_CR_RXEN    | UART_CR_TXEN;
}
////////////////////////////////////////////////////////////////////////////////
всем спасибо :)))
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Ответить

Вернуться в «AVR»