как правильно написать скетч для ардуино? нужно чтобы светодиод маргнул 20 раз примерно по 5 сикунд, затем 3 раза по 10 сикунд после потух на 30 секунд и всё повторилось сначала без delay Раздел: Arduino и Raspberry Pi
Всем добрый вечер. Проблема следующая. Есть плата STM32VL Discovery. К ней цепляется з-х разрядный семисегментный индикатор. Цифры предполагается выводить динамически. Но при выводе первого разряда вместе с ним подсвечивается и второй, при выводе 2-го подсвечивается 3-й и соответственно при выводе 3-го подсвечивается 1-й. Пробовал различные частоты вывода и применять задержки между выключением предыдущего индикатора и включением последующего. В чём может быть дело??? На Си только начинаю программировать, поэтому код скорее всего не эффективный, но всё же. Жду ваших ответов.
#include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" #include "stm32f10x_tim.h" #define IND_PORT GPIOA// This port is responsible for the display of "IND_PORT" #define D1 GPIO_Pin_0//This conclusion is responsible for 1st indicator #define D2 GPIO_Pin_1//This conclusion is responsible for 2nd indicator #define D3 GPIO_Pin_2//This conclusion is responsible for 3rd indicator // A segment of the indicator - the output of the microcontroller #define SEG_A GPIO_Pin_0// seg "A" #define SEG_B GPIO_Pin_1// seg "B" #define SEG_C GPIO_Pin_2// seg "C" #define SEG_D GPIO_Pin_3// seg "D" #define SEG_E GPIO_Pin_4// seg "E" #define SEG_F GPIO_Pin_5// seg "F" #define SEG_G GPIO_Pin_6// seg "G" #define DP GPIO_Pin_7 //Decimal point // Create the numbers of segments #define DIG0 ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F ) #define DIG1 ( SEG_B | SEG_C ) #define DIG2 ( SEG_A | SEG_B | SEG_G | SEG_E | SEG_D ) #define DIG3 ( SEG_A | SEG_B | SEG_G | SEG_C | SEG_D ) #define DIG4 ( SEG_F | SEG_G | SEG_B | SEG_C) #define DIG5 ( SEG_A | SEG_F | SEG_G | SEG_C | SEG_D ) #define DIG6 ( SEG_A | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G ) #define DIG7 ( SEG_A | SEG_B | SEG_C ) #define DIG8 ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G) #define DIG9 ( SEG_A | SEG_B | SEG_C | SEG_D | SEG_F | SEG_G) #define ALL_PINS (DIG8 | D1 | D2 | D3 )
// Delay void Delay (void); void Delay (void) { unsigned long i; for (i=0; i<20000; i++); } //
#define TIMER_PRESCALER 720 uint8_t previousState; uint8_t IND_State; GPIO_InitTypeDef port;//??? TIM_TimeBaseInitTypeDef timer; uint8_t counter1; uint8_t counter2; uint8_t counter3; uint8_t rez; uint8_t digit;
void digit_to_port (uint8_t digit){ uint8_t digitsp[]={DIG0,DIG1,DIG2,DIG3,DIG4,DIG5,DIG6,DIG7,DIG8,DIG9}; IND_PORT->ODR &= ~DIG8; IND_PORT->ODR |= digitsp[digit]; } //
void initAll() { GPIO_InitTypeDef port;//??? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //On port "A" RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //On port "B" RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //On timer "Tim 4" GPIO_StructInit(&port); //Port "A" input port.GPIO_Mode = GPIO_Mode_Out_PP; port.GPIO_Pin = DIG8 | DP; port.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &port);
//Port "B" output port.GPIO_Mode = GPIO_Mode_Out_PP; port.GPIO_Pin =D1 | D2 | D3; port.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &port); // Timer TIM_TimeBaseStructInit(&timer); timer.TIM_Prescaler = TIMER_PRESCALER; timer.TIM_Period = 5000; TIM_TimeBaseInit(TIM4, &timer); }
// int main() { __enable_irq(); initAll(); TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); TIM_Cmd(TIM4, ENABLE); NVIC_EnableIRQ(TIM4_IRQn); IND_State=1; counter1=1; counter2=2; counter3=7; while(1) { __NOP(); } } //
void TIM4_IRQHandler() { if (IND_State == 1) { GPIO_ResetBits(GPIOB, D1|D2|D3); GPIO_ResetBits(GPIOA, DIG8); Delay(); IND_State=2; GPIO_SetBits(GPIOB, D1); digit_to_port(counter1); timer.TIM_Period = 50000; TIM_TimeBaseInit(TIM4, &timer); TIM_ClearITPendingBit(TIM4, TIM_IT_Update); } else { if (IND_State == 2) { GPIO_ResetBits(GPIOB, D1|D2|D3); GPIO_ResetBits(GPIOA, DIG8); Delay(); IND_State=3; GPIO_SetBits(GPIOB, D2); digit_to_port(counter2); timer.TIM_Period = 50000; TIM_TimeBaseInit(TIM4, &timer); TIM_ClearITPendingBit(TIM4, TIM_IT_Update); } else { GPIO_ResetBits(GPIOB, D1|D2|D3); GPIO_ResetBits(GPIOA, DIG8); Delay(); IND_State=1; GPIO_SetBits(GPIOB, D3); digit_to_port(counter3); timer.TIM_Period = 50000; TIM_TimeBaseInit(TIM4, &timer); TIM_ClearITPendingBit(TIM4, TIM_IT_Update); } } }
Раздел: STM32
Подскажите, работоспособна ли схема? попробовал собрать, а она не работает. деталей на нее куча. хочу собрать полностью рассыпной усилитель типа TDA1557Q, сделать колоночку от 12 вольт полностью на рассыпухе. Раздел: Усилители мощности
Здравствуйте, выходной конденсатор в схеме на 500мк, мне кажется я неправильно срисовал схему и он должен быть полярным? уж слишком он большой ёмкости. встретиться с источником в ближайшие месяцы не удастся. Раздел: Песочница или Вопрос-Ответ
Всем доброго,что из всех вышеперечисленных будет лучше всего по звучанию?можно ли заметить на слух разницу в звучании этих усилителей?слушал 4702 с полевым выхлопом,ничего отличительного в звучании этой микры не заметил. Раздел: УМЗЧ на интегральных и гибридных микросхемах
куплю встраиваемый mp3 модуль в Москве или Области типа такого покупку на Ебеи и Алибабы не предлагать Раздел: Куплю
ТУ ТГ2.710.005 версия для печати Предназначены для измерения напряжений постоянного и переменного тока, сопротивления постоянному току, силы постоянного тока и температуры. Технические и эксплуатационные характеристики приборов идентичны, за исключением диапазона частот измеряемых напряжений: 20 Гц - 100 кГц (В7-27), 20 Гц - 6 МГц (В7-27А, В7-27А/1) и типов индикаторов. Предусмотрены автоматическая индикация полярности и возможность измерения величин, на 100% превышающих поддиапазоны измерения прибора. Имеется защита от перегрузки и ее автоматическая индикация. Основные данные Измерение напряжения постоянного тока: напряжения постоянного тока 1*10-4 - 103 В с поддиапазонами: 0,1-1-10-100-1000 В; сипы постоянного тока 1*10-9 - 2*10-1 А с поддиапазонами: 1-10-100 мкА; 1-10-100 мА; напряжения переменного тока 3*10-4 - 3*102 В с поддиапазонами: 1-10-100 мВ; 1-10-100-1000 В; сопротивления постоянному току 1*10-3 - 2*107 Ом с поддиапазонами: 1-10-100 Ом; 1-10-100 кОм; 1-10 МОм; температуры -30...100 0С Погрешность измерений: напряжения постоянного тока: ±[0,35 + 0,15(UK/UX - 1)]% (100 мВ); ± [0,25 + 0,15(Uk/Ux -1)] %; силы постоянного тока ± [0,4 + 0,2(Ik/Ix - 1)]%; напряжения переменного тока: от [1 + 0,5(Uk/Ux -1)] до [2+1 (Uk/Ux -1)]% (20 Гц - 100 кГц), от [2 + 1(Uk/Ux-1)] до [5 + 2,5(Uk/Ux -1)]% (свыше 100 кГц до 6 МГц); сопротивпения постоянному току: ±[0,5 + 0,2(Rk/Rx - 1)]%; (1, 10 Ом; 10 МОм) ±[0,4 + 0,2(Rk/Rx - 1)] %; температуры ±2° С Входное сопротивление и емкость: 10 МОм (U=); 1 МОм (U~), 45 пФ ваша цена Раздел: Продам-Отдам
Собственно вопрос такой: Распиновка разъёма , подключение . Раздел: Телевизоры и мониторы
Продам PICkit 3 Debug Express (DV164131). ФИРМЕННЫЙ, не "клон" из Китая! Отладочный комплект состоит из: 1. Внутрисхемный программатор-отладчик PICkit 3 2. Демонстрационную плату с микроконтроллером PIC18F45k20 3. USB кабель и CDROM с необходимым ПО прошил им один МК, просто лежит и пылится теперь цена вопроса: 2450 р с пересылкой по РФ. Отправлю почтой посылкой с трек-номером. Новый фирменный- от 4000р. проживаю в Брянской области, Россия (не в Беларуси!)я уже его продавал, обещали забрать, но так почти полгода и лежит. Больше некаких бронирований! Раздел: Продам-Отдам
Есть магнитофон Вильма, в нем микросхема К1003пп4 и светодиоды. помогите с печатной платой хочу переделать под самодельный усилок блок индикации на этой микросхеме. Раздел: Песочница или Вопрос-Ответ
[next-page][/next-page]
|