Последние темы
» Вити больше нет!автор bug19 Пн Фев 20 2023, 19:54
» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47
» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05
» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03
» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02
» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52
» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36
» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37
» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33
» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00
» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58
» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17
» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07
» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08
» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09
» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02
» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47
» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11
» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33
» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38
» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12
» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01
» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22
» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08
» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08
Самые активные пользователи за месяц
Нет пользователей |
Поиск
Kendryte K210 достойный микроконтроллер с ИИ
Страница 2 из 2 • Поделиться
Страница 2 из 2 • 1, 2
.
26
1 - мигаем светодиодом
Давайте сделаем уже это. А то я сам чувствую не смогу, отдельные нюансы понятны, но целая картина не складывается, точнее она складывается, но много вариантов и уверен, что все будут неправильные. Хотелось бы для начала просто светодиод, повешенный на GPIO не на GPIOHS а на обычный GPIO, коих как я понял 8 шт.
Я примерно понимаю так, нам нужно инизиализировать GPIO, потом назначить его работу на выход, привязать наш порт к конкретному физическому выводу, и мигать, сделать задержку, и, включили, прошла задержка - выключили, прошла задержка, снова включили. Вот хотелось бы готовый код, чтобы можно было разобрать каждую строку программы отдельно, понять, что мы делаем, как и зачем, и чтобы потом потренироваться с включением подтягивающих резисторов и остальных доступных функций, и так для всех трёх видов, но в отдельности, т. е. для GPIO, GPIOHS и FPIOA.
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
27
Если не хотите Platform IO, китайцы написали подобие вижл студии под веб, это тоже полноценный компилятор без заморочек. По нему у меня есть полный материал с картинками...
Ну, и где оно всё, ни одной картинки, до сих пор, не видно, а интересно...
Последний раз редактировалось: Viktor2312 (Вт Дек 08 2020, 07:29), всего редактировалось 1 раз(а)
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
28
Эхх, пока вот так вот:
#include <stdio.h>
#include <unistd.h>
#include <fpioa.h>
#include <plic.h>
#include <string.h>
#include <sleep.h>
#include <uarths.h>
#include "sysctl.h" // Заголовочный файл системы тактирования
#include "atomic.h"
#include "encoding.h"
#include "entry.h"
#include "printf.h"
#include "syscalls.h"
#include "gpiohs.h"
#define u8 uint8_t // 8-битный unsigned char
#define u16 uint16_t // 16-битный unsigned short
#define Led1_PIN 22
#define Led2_PIN 24
#define Led3_PIN 25
void system_init(void){ // Инициализация частот системы тактирования
sysctl_pll_set_freq(SYSCTL_PLL0, 800000000UL);
sysctl_pll_set_freq(SYSCTL_PLL1, 160000000UL);
sysctl_pll_set_freq(SYSCTL_PLL2, 45158400UL);
}
void init_pins(void){ // Настройка портов
fpioa_set_function(Led1_PIN, FUNC_GPIOHS22);
fpioa_set_function(Led2_PIN, FUNC_GPIOHS24);
fpioa_set_function(Led3_PIN, FUNC_GPIOHS25);
gpiohs_set_drive_mode(Led1_PIN, GPIO_DM_OUTPUT);
gpiohs_set_pin(Led1_PIN, GPIO_PV_HIGH);
gpiohs_set_drive_mode(Led2_PIN, GPIO_DM_OUTPUT);
gpiohs_set_pin(Led2_PIN, GPIO_PV_HIGH);
gpiohs_set_drive_mode(Led3_PIN, GPIO_DM_OUTPUT);
gpiohs_set_pin(Led3_PIN, GPIO_PV_HIGH);
}
void io_set_power(void){ // Выбор напряжения питания портов
sysctl_set_power_mode(SYSCTL_POWER_BANK0, SYSCTL_POWER_V33); // Напряжение (банк 0) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK1, SYSCTL_POWER_V33); // Напряжение (банк 1) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK2, SYSCTL_POWER_V33); // Напряжение (банк 2) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK3, SYSCTL_POWER_V33); // Напряжение (банк 3) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK4, SYSCTL_POWER_V33); // Напряжение (банк 4) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK5, SYSCTL_POWER_V33); // Напряжение (банк 5) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK6, SYSCTL_POWER_V33); // Напряжение (банк 6) 3,3 В
sysctl_set_power_mode(SYSCTL_POWER_BANK7, SYSCTL_POWER_V33); // Напряжение (банк 7) 3,3 В
}
int main(void){ // Основная функция
int count_1 = 0; // Объявляем переменную count_1 и присваиваем начальное значение 0
system_init(); // Инициализация частот процессора
init_pins(); // Настройка портов
io_set_power(); // Выбор напряжения питания портов
uarths_init(); // Инициализация последовательного интерфейса, для вывода в UART отлад. инф.
plic_init(); // Инициализация прерываний (пока не используются)
while(count_1 < 3){ // Цикл выполняющийся три раза.
gpiohs_set_pin(Led1_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
gpiohs_set_pin(Led2_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
gpiohs_set_pin(Led3_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
msleep(250); // Задержка на 250 мс работает при помощи присутствующего файла "sleep.h"
gpiohs_set_pin(Led1_PIN, GPIO_PV_LOW); // Переключаем в состояние лог. 0
gpiohs_set_pin(Led2_PIN, GPIO_PV_LOW); // Переключаем в состояние лог. 0
gpiohs_set_pin(Led3_PIN, GPIO_PV_LOW); // Переключаем в состояние лог. 0
msleep(250); // Задержка на 250 мс
count_1 = count_1 + 1; // Увеличиваем на единицу значение переменной count_1
}
while(1){ // Бесконечный цикл
gpiohs_set_pin(Led1_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
gpiohs_set_pin(Led2_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
gpiohs_set_pin(Led3_PIN, GPIO_PV_HIGH); // Переключаем в состояние лог. 1
}
}
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
29
ведущий_специалист Вот изучая обычный Си, ну понятно, есть основные типы, а сталкиваясь с МК и ещё по каким-то ссылкам Барсика на алеморфа я там вижу постоянно
uint8_t
uint16_t
uint32_t
uint64_t
Суть логически понятна, это переменные типа 8-бит,16-бит и т. д. А можете как-то в кратце пояснить или кинуть ссылки на прояснение сего момента?
uint8_t
uint16_t
uint32_t
uint64_t
Суть логически понятна, это переменные типа 8-бит,16-бит и т. д. А можете как-то в кратце пояснить или кинуть ссылки на прояснение сего момента?
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Re: Kendryte K210 достойный микроконтроллер с ИИ
30
Viktor2312 пишет:ведущий_специалист Вот изучая обычный Си, ну понятно, есть основные типы, а сталкиваясь с МК и ещё по каким-то ссылкам Барсика на алеморфа я там вижу постоянно
uint8_t
uint16_t
uint32_t
uint64_t
Суть логически понятна, это переменные типа 8-бит,16-бит и т. д. А можете как-то в кратце пояснить или кинуть ссылки на прояснение сего момента?
По моему скромному мнению - такие объявления делаются дабы не привязывать код к конкретной платформе.
Немного попытаюсь объяснить -
у авр микроконтроллеров инт 16 бит, у армов инт 32 бит.
Так вот написав uint16_t - мы четко объяснили компилятору что переменная у нас беззнаковая и 16 бит независимо от типа платформы. С uint32 и uint64 то же самое. А вот с uint8_t здесь никакой нагрузки смысловой не будет, что unsigned char что uint8_t - по мне одинаково, как по привычке напишешь так и будет. Думаю эти вопросы в ветке по изучению микроконтроллера 64 бит с двумя ядрами здесь неуместны абсолютно, ибо это основы основ Си.
ведущий_специалист- Мастер+
- Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург
.
31
Думаю эти вопросы в ветке по изучению микроконтроллера 64 бит с двумя ядрами здесь неуместны абсолютно, ибо это основы основ Си.
Ну не знаю, не знаю... Я основы основ Си проштудировал, правда пока не до конца, уж слишком объёмный материал, на примерах проверил, всё понял, всё работает, на РС, но никаких там uint не видел и не встречал, так как это похоже особенность конкретно в применении к микроконтроллерам, возможно и ещё чему-то. Вот поэтому и хотел этот момент прояснить. Ладно, буду сам разбираться, может через пол года и появятся вопросы подходящие...
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Re: Kendryte K210 достойный микроконтроллер с ИИ
32
Не надо самому разбираться. Пока есть у кого спросить - надо спрашивать. А я пока не собираюсь никуда сваливать. Сижу вот схемотехникой занимаюсь..... Ну в интерес мне. Мало того , в планах все это доделать. Жаль Барсик ушел... Я так и не понял почему.
ведущий_специалист- Мастер+
- Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург
Страница 2 из 2 • 1, 2
Похожие темы
» K210. Общая тема по микроконтроллеру. Теория.
» K210. Общая тема по KPU. Теория.
» PIC32MX. Микроконтроллер PIC32MX795F512L
» Микроконтроллер K1986BE92QI (MDR32F9Q2I).
» PIC32MX. Микроконтроллер PIC32MX270F256B (SPDIP)
» K210. Общая тема по KPU. Теория.
» PIC32MX. Микроконтроллер PIC32MX795F512L
» Микроконтроллер K1986BE92QI (MDR32F9Q2I).
» PIC32MX. Микроконтроллер PIC32MX270F256B (SPDIP)
Страница 2 из 2
Права доступа к этому форуму:
Вы не можете отвечать на сообщения