Есть специальная программа для маленьких Мк и Си. Дома могу посмотреть как называется.
Еще есть algorithm builder в котором есть возможность отлаживать любой Мк по собственному интерфейсу.В нем используются как раз таки макросы, упрощающие жизнь.
а в тини24 есть GAIN AMPLIFIER 20x._Vasilij_ писал(а):пу меня мысль только в сторону шунта на 0.1ом, но там такие милливольты, думаю не поймаются и понадобится ОУ...как-то хлопотно это
там же реле стоит, если к компрессору я так понимаю это надо уже после реле цепляться...не пойдет, мне маме на дачу готовый девайс слепить надо бы, в розетку воткнула, а от холодильника в девайсину.Леонид Иванович писал(а):А оптрон подцепить параллельно компрессору нельзя? Или нужно обязательно ток контролировать?
ммм, всмысле прям на один из проводов 220в. навинтить обмотку и контролировать когда у неё ЭДС появится ? Или вы имеете ввиду просто холодильник последовательно с первичкой, а со вторички контроль снимать ?oleg63m писал(а):есть такое устройство как трансформатор тока, на вторичку можно намотать немеренное колличество витков, и оу не понадобится, и падение небольшое
или аккустический датчик как в автомобилях
Только не ЭДС, а ток. Тема по ТТ: http://radiokot.ru/forum/viewtopic.php?f=11&t=91920_Vasilij_ писал(а):на один из проводов 220в. навинтить обмотку и контролировать когда у неё ЭДС появится
Давайте без спама.oleg63m писал(а):Рыть радо в глубь
ИМХО, дело не в коде, а в настройке среды.oleg63m писал(а):я так полагаю, чтобы на такие вопросы отвечать, надо хотя-бы кусочек кода увидеть.
Код: Выделить всё
#include "stm32f2xx.h"
#include "stm32f2xx_conf.h"
#include "FreeRTOS.h"
#include "task.h"
GPIO_InitTypeDef GPIO_InitStructure;
void InitPeriph(void);
void vTaskLED1(void *pvParameters) {
for (;;) {
GPIO_SetBits(GPIOF, GPIO_Pin_6);
vTaskDelay(500);
GPIO_ResetBits(GPIOF, GPIO_Pin_6);
vTaskDelay(500);
}
}
void vTaskLED2(void *pvParameters) {
for (;;) {
GPIO_SetBits(GPIOF, GPIO_Pin_7);
vTaskDelay(321);
GPIO_ResetBits(GPIOF, GPIO_Pin_7);
vTaskDelay(321);
}
}
void vTaskLED3(void *pvParameters) {
for (;;) {
GPIO_SetBits(GPIOF, GPIO_Pin_8);
vTaskDelay(689);
GPIO_ResetBits(GPIOF, GPIO_Pin_8);
vTaskDelay(300);
}
}
void vTaskLED4(void *pvParameters) {
for (;;) {
GPIO_SetBits(GPIOF, GPIO_Pin_9);
vTaskDelay(238);
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
vTaskDelay(861);
}
}
void main()
{
InitPeriph ();
xTaskCreate( vTaskLED1, ( signed char * ) "LED1", configMINIMAL_STACK_SIZE,
NULL, 2,NULL);
xTaskCreate( vTaskLED2, ( signed char * ) "LED2", configMINIMAL_STACK_SIZE,
NULL, 2,NULL);
xTaskCreate( vTaskLED3, ( signed char * ) "LED3", configMINIMAL_STACK_SIZE,
NULL, 2,NULL);
xTaskCreate( vTaskLED4, ( signed char * ) "LED4", configMINIMAL_STACK_SIZE,
NULL, 2,NULL);
vTaskStartScheduler();
}
void InitPeriph(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOF, &GPIO_InitStructure);
}