-
谁掘的坟? 都是找不到帖
-
理解是正确的,
-
哈哈,你把220V加到单片机上,不烧才怪,
-
是多少定量的价格?
-
而电流输入最大可达到5A?
输入达5A???什么叫输入?
像你这种情况,估计老师要求的是用变压器的吧,LM317 是可调电压的,可以支持0~30V可调,电路也很简单,就十来个元器件。先变压器降压,然后整流,滤波,可调稳压。
而你的参数,电流5A,你就买个输出功率比较大的,输出能达到5A的变压器咯,不过,我怀疑的是,LM317能工作在5A电流??
-
楼主 可以好好看看AD8337的技术手册,
个人感觉关键在于:
AD8337其增益控制范围为0~24dB,只是说可以调整最大范围是24db。
如果VNEG 接地,则其可调的是0~24dB,如果VNEG 接负电源(比如正电源是+5V,而此时VNEG接的是-5V),则其可调的很可能是-6 -- +18db.
关键在于VNEG 这个电源。
楼主可以好好看看这篇文章:
http://www1.eccn.com/xsj07/xsj074624w.asp
-
我在等破解。。。
-
你的芯片是不是坏了哦。
-
可以做些源码解析的贴么?原理太笼统,读源码直接明了
/*
*************************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* ATmega128 Sample code
*
* File : APP.C
* By : Jean J. Labrosse
*************************************************************************************************************
*/
#include
/*
**************************************************************************************************************
* CONSTANTS
*
* Note(s) : 1) See OS_CFG.H for the default stack size: 'OS_TASK_STK_SIZE'
**************************************************************************************************************
*/
#define CPU_CLK_FREQ 3684000L
#define OS_TASK_START_STK_SIZE OS_TASK_STK_SIZE
#define OS_TASK_START_HARD_STK_SIZE OS_TASK_HARD_STK_SIZE
#define OS_TASK_1_STK_SIZE OS_TASK_STK_SIZE
#define OS_TASK_1_HARD_STK_SIZE OS_TASK_HARD_STK_SIZE
#define OS_TASK_2_STK_SIZE OS_TASK_STK_SIZE
#define OS_TASK_2_HARD_STK_SIZE OS_TASK_HARD_STK_SIZE
/*
**************************************************************************************************************
* VARIABLES
**************************************************************************************************************
*/
OS_STK AppTaskStartStk[OS_TASK_START_STK_SIZE];
OS_STK AppTask1Stk[OS_TASK_1_STK_SIZE];
OS_STK AppTask2Stk[OS_TASK_2_STK_SIZE];
/*
**************************************************************************************************************
* FUNCTION PROTOTYPES
**************************************************************************************************************
*/
void main(void);
static void AppTaskStart(void *p_arg);
static void AppTaskCreate(void);
static void AppTask1(void *p_arg);
static void AppTask2(void *p_arg);
static void AppIOInit(void);
static void LED_Toggle(INT8U led);
/*
**************************************************************************************************************
* MAIN
*
* Note(s): 1) You SHOULD use OS_TASK_STK_SIZE (see OS_CFG.H) when setting OSTaskStkSize prior to calling
* OSInit() because OS_TASK_IDLE_STK_SIZE and OS_TASK_STAT_STK_SIZE are set to this value in
* OS_CFG.H.
**************************************************************************************************************
*/
void main (void)
{
/*---- Any initialization code prior to calling OSInit() goes HERE --------------------------------*/
/* IMPORTANT: MUST be setup before calling 'OSInit()' */
OSTaskStkSize = OS_TASK_STK_SIZE; /* Setup the default stack size */
OSTaskHardStkSize = OS_TASK_HARD_STK_SIZE; /* Setup the default hardware stack size */
OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */
/*---- Any initialization code before starting multitasking ---------------------------------------*/
OSTaskStkSize = OS_TASK_START_STK_SIZE; /* Setup the total stack size */
OSTaskHardStkSize = OS_TASK_START_HARD_STK_SIZE; /* Setup the hardware stack size */
OSTaskCreate(AppTaskStart, (void *)0, (OS_STK *)&AppTaskStartStk[OSTaskStkSize - 1], 0);
/*---- Create any other task you want before we start multitasking --------------------------------*/
OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */
}
/*
*********************************************************************************************************
* STARTUP TASK
*
* Description : This is an example of a startup task. As mentioned in the book's text, you MUST
* initialize the ticker only once multitasking has started.
*
* Arguments : p_arg is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
*
* Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
* used. The compiler should not generate any code for this statement.
*********************************************************************************************************
*/
static void AppTaskStart (void *p_arg)
{
p_arg = p_arg; /* Prevent compiler warnings */
OSTickISR_Init(); /* Initialize the ticker */
AppIOInit(); /* Initialize the I/Os */
AppTaskCreate();
while (TRUE) { /* Task body, always written as an infinite loop. */
LED_Toggle(1);
OSTimeDly(OS_TICKS_PER_SEC / 10);
}
}
/*
*********************************************************************************************************
* CREATE APPLICATION TASKS
*
* Description : This function creates the application tasks.
*
* Arguments : p_arg is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
*
* Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
* used. The compiler should not generate any code for this statement.
*********************************************************************************************************
*/
static void AppTaskCreate (void)
{
/*---- Task initialization code goes HERE! --------------------------------------------------------*/
OSTaskStkSize = OS_TASK_1_STK_SIZE; /* Setup the default stack size */
OSTaskHardStkSize = OS_TASK_1_HARD_STK_SIZE; /* Setup the default hardware stack size */
OSTaskCreate(AppTask1, (void *)0, (OS_STK *)&AppTask1Stk[OSTaskStkSize - 1], 1);
OSTaskStkSize = OS_TASK_2_STK_SIZE; /* Setup the default stack size */
OSTaskHardStkSize = OS_TASK_2_HARD_STK_SIZE; /* Setup the default hardware stack size */
OSTaskCreate(AppTask2, (void *)0, (OS_STK *)&AppTask2Stk[OSTaskStkSize - 1], 2);
}
/*
*********************************************************************************************************
* TASK #1
*********************************************************************************************************
*/
static void AppTask1(void *p_arg)
{
p_arg = p_arg;
while (TRUE) {
LED_Toggle(2);
OSTimeDly(OS_TICKS_PER_SEC / 5);
}
}
/*
*********************************************************************************************************
* TASK #2
*********************************************************************************************************
*/
static void AppTask2(void *p_arg)
{
p_arg = p_arg;
while (TRUE) {
LED_Toggle(3);
OSTimeDly(OS_TICKS_PER_SEC / 2);
}
}
/*
*********************************************************************************************************
* SETUP THE I/Os
*********************************************************************************************************
*/
static void AppIOInit (void)
{
DDRD = 0xFF; /* All PORTD pins are outputs */
PORTD = 0xFF;
}
/*
*********************************************************************************************************
* SETUP THE TICK RATE
*********************************************************************************************************
*/
void OSTickISR_Init (void)
{
TCCR0 = 0x07; /* Set TIMER0 prescaler to CLK/1024 */
TIMSK = 0x01; /* Enable TIMER0 overflow interrupt */
}
/*
*********************************************************************************************************
* SETUP THE TICK RATE
*********************************************************************************************************
*/
void OSTickISR_Handler (void)
{
TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
OSTimeTick();
}
/*
*********************************************************************************************************
* TOGGLE LED
*********************************************************************************************************
*/
static void LED_Toggle (INT8U led)
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
OS_ENTER_CRITICAL();
switch (led) {
case 1:
PORTD ^= 0x01;
break;
case 2:
PORTD ^= 0x02;
break;
case 3:
PORTD ^= 0x04;
break;
case 4:
PORTD ^= 0x08;
break;
}
OS_EXIT_CRITICAL();
}
能帮我注释下不
-
帮顶下。
期待高手,MARK.
-
引用 17 楼 mjh2000 的回复:
我从来就用100欧姆的上拉电阻。
这个不耗电么
-
\\Storage Card\\text\\mbgis\\maps\\111_22.png
-
恩,建议楼主贴上代码看看。
如果你是用while循环的话,处理不当的可能会有一些问题。程序一直没空跳出来。一直再查询。
-
引用 8 楼 flandy1982 的回复:
引用 5 楼 qwqwqw408 的回复:
引用 4 楼 flandy1982 的回复:
1. 你把代码精简下测测.
2. 使用release模式测试.
这代码还如何精简,我都只保留了最少的。
你确定你的代码就这么一点点? 我觉得这段代码没有任何问题.
我的代码有很多,肯定不可能说创建一个空线程,这没意义嘛。只是我为了定位问题,把代码都去掉了。这段代码我试了很多次,运行一次,内存就少一点,但是少一定数量之后就稳定了。大概100多K吧
-
引用 6 楼 never_ql 的回复:
我是楼主,还有个问题。
两个单片机相连,必须要将GND连接在一起共地吗?
分别接地 不行吗?
另外两个单片机通信该怎么调试?单步调试没有用。
还有上面的问题,还是没有解决掉,不知道是不能发送,还是不能接收,
help.....
最好的办法就是拿示波器来看数据
-
欧姆龙的继电器啊,而且肯定是正品。
-
这个我做过,在每个驱动中都刷新LCD,效果是实现了,但是我觉得方法比较SB
不知道在OAL层启动一个线程来刷新LCD,在Display驱动中关闭这个线程,这种方法可行不,不过这个难以做到滚动条走完启动,只能像XP启动那样,一个滚动条来回跑.
-
呵呵我们的产品不是mp3一类的消费品。行业性质就决定了它不用加密,没有配套的硬件和上位机,就没有使用的价值了。
-
一般情况下只要接地良好,你把线路以接好,零漂情况就会基本消失,不会再像悬空时那样。也就是说,即使你的第五路坏了,只要线路连接上的,就不会出现你说的情况。
还有,一般数据采集需要作处理的,我一般是连续采集多次求平均值(比如50次,去掉最大的5个和最小的5个,余下的求平均值),这样处理的数据就比较平稳了。
-
只是下载到内存了,没有写入到Flash,你可以用串口助手看调试信息,有没有写Flash