X-Hawk
发表于 2010-10-18 17:47:55
回复【394楼】machao
这么简单的东西为什么还需要再TW生产。是新唐公司要保密技术,还是准备靠工具赚钱?或是新唐国内工程师的技术跟不上?还是出于其它战略上的考虑。
-----------------------------------------------------------------------
真不觉得靠工具赚钱能有出息。
也许怕别人拿过去,横改竖改,改的新唐自己都不认识了,生产品质也难控管。搞不好让客户调试出问题,就会乱怀疑芯片。
所以就是别人可以做,不关我事,一种自我保护需要吧。(以上是俺臆想的答案,马老师莫怪,俺调程序bug也经常有臆想的毛病,呵呵)
M051
发表于 2010-10-18 18:42:00
M051点亮VFD成功,刷新可以>1000帧/秒
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_590834CNX368.jpg
(原文件名:SSL10822.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_590835DJQC8U.jpg
(原文件名:SSL10824.jpg)
xinbadaz
发表于 2010-10-18 19:23:24
mark一下。
machao
发表于 2010-10-18 21:02:18
回复【396楼】X-Hawk
回复【394楼】machao
这么简单的东西为什么还需要再tw生产。是新唐公司要保密技术,还是准备靠工具赚钱?或是新唐国内工程师的技术跟不上?还是出于其它战略上的考虑。
-----------------------------------------------------------------------
真不觉得靠工具赚钱能有出息。
也许怕别人拿过去,横改竖改,改的新唐自己都不认识了,生产品质也难控管。搞不好让客户调试出问题,就会乱怀疑芯片。
所以就是别人可以做,不关我事,一种自我保护需要吧。(以上是俺臆想的答案,马老师莫怪,俺调程序bug也经常有臆想的毛病,呵呵)
-----------------------------------------------------------------------
询问你与南京芯成邦*******公司的关系,该公司也代理新唐的产品。从你的许多帖子看出,你对M051已经非常熟悉了。那么请教一下,你编写代码是采用新唐的提供的库,还是喜欢直接针对寄存器操作。各自有什么特点,根据你的经验认为哪种方法好?
X-Hawk
发表于 2010-10-18 21:18:47
马老师您好,经验不敢当,芯成邦的老板是我的朋友,很熟悉。
我在芯唐,nu-link的工具的策略,属肉食者谋之,俺只是乱想。
编写代码还是比较喜欢用函数库,直接套用比较方便。
如需检查问题,会直接尝试到函数库里的寄存器操作,
如果碰到内存/速度要求比较高的场合,也会被迫用寄存器,
例如用GPIO模拟出某个快速的时序,用函数库的话,有函数调用的开销,不划算。
1057045572
发表于 2010-10-19 17:49:17
回复【400楼】X-Hawk
-----------------------------------------------------------------------
怎么称呼你呢?你应该是我们新唐上海这边的吧? 呵呵,后续OURDEV这边全靠你支持了
jckj
发表于 2010-10-19 22:20:59
支持
tom919
发表于 2010-10-20 00:42:17
支持&关注……
hotpower
发表于 2010-10-23 00:27:19
哈哈~~~开始玩nuc120~~~
调试通过
kingofkings
发表于 2010-10-23 05:05:11
厄
发现菜农又跑来了
1181zjf
发表于 2010-10-23 08:07:18
又见菜农!!!
youki1234
发表于 2010-10-23 09:06:20
mark
stm8s
发表于 2010-10-23 09:42:03
mark
hotpower
发表于 2010-10-23 11:48:15
晕!俺来马老师的地盘不犯法吧。
别的地方估计要坐牢了…
heaven_yfs
发表于 2010-10-23 12:08:44
与时俱进!
heero
发表于 2010-10-23 14:54:35
这是关键问题,书一般来说无所谓,通用的知识都会,深奥的只有实践
zsw3979
发表于 2010-10-23 14:56:02
我也顶个!!
James_King
发表于 2010-11-15 09:10:33
顶起
microhard567
发表于 2010-11-18 16:01:53
回复【楼主位】armok 阿莫
-----------------------------------------------------------------------
谁知到过断时间M051是不是也会死呢?到时候又得再学新的单片机了,郁闷,怎么会这样呢。
machao
发表于 2010-11-19 03:29:08
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_598990EYALLG.jpg
(原文件名:未标题-2 拷贝.jpg)
外型类似下图的USB-ISP,接口同原厂完全兼容。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_599034R28IM2.jpg
(原文件名:图4-13 USB-ISP实物图.jpg)
wuzhujian
发表于 2010-11-19 06:49:10
顶起来
Fire_cow
发表于 2010-11-19 07:09:38
顶
Nu-Link-Ma
lixun00
发表于 2010-11-19 09:17:02
又见HOTPOWER!
yuanjingjie
发表于 2010-11-19 10:11:06
关注中
liangyurongde
发表于 2010-11-19 11:34:19
回复【417楼】machao
(原文件名:未标题-2 拷贝.jpg)
引用图片
-----------------------------------------------------------------------
请问马老师,这个调试器的USB端有没有方头版的?我见JLINK和ULINK的都是方头的。
machao
发表于 2010-11-19 12:31:44
这个是山寨板的DD,基本是拷贝原厂的电路,由于原厂提供了电路和固件,所以我只是改变了外型。做这个也是学习。这个实际上也是一个NUC120的小评估板。
原厂的USB采用转接线,板上是小形的USB座,我的山寨版准备省掉USB的连线,直接插在PC的USB口上,能省一点就省一点。另外普通平头的USB连接线到处都有,比方头的通用。我现在学校的学生学习AVR,使用的也是类似的USB-ISP下载线,也是直接插在PC上的。这个DD类似这个的外型,接口与原厂完全相同:
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_599034R28IM2.jpg
(原文件名:图4-13 USB-ISP实物图.jpg)
今天做版,已经申请到了样片,我会及时通报进展情况。
1181zjf
发表于 2010-11-19 12:36:15
顶!
hdd961140543
发表于 2010-11-19 12:36:21
在历史的新纪元上,我也来留名!
flypig8321
发表于 2010-11-19 12:48:44
顶马老师!
fover
发表于 2010-12-2 10:19:39
我这也收到一块样板,正在研究中,希望马老师能出一个新手级别的教材让我们来学学
luolj
发表于 2010-12-2 12:27:42
关注中,随时跟进!
yxyfish
发表于 2010-12-4 09:18:47
M0功耗太大,还是不能替代avr adc的工艺水平也比较低
kandy11
发表于 2010-12-4 16:18:01
又要转型了
hotpower
发表于 2010-12-5 08:54:40
马潮教授:
俺已将nuc1xx和m05x的头文件做完。
由于它们都属于cortex-m0,前者无ebi接口,后者无usb,rtc,i2s,can等模块。
故后者是前者的一个子集。
前者用了很多的时间,后者只用了不到两个小时,几乎是全部转抄。
所以俺准备将其和合为一个通用的头文件,内部自动识别。
machao
发表于 2010-12-5 13:06:25
回复【431楼】hotpower 菜农
马潮教授:
俺已将nuc1xx和m05x的头文件做完。
由于它们都属于cortex-m0,前者无ebi接口,后者无usb,rtc,i2s,can等模块。
故后者是前者的一个子集。
前者用了很多的时间,后者只用了不到两个小时,几乎是全部转抄。
所以俺准备将其和合为一个通用的头文件,内部自动识别。
-----------------------------------------------------------------------
谢谢你的捧场。
我喜欢从最底层开始玩(熟悉)东西。比如先做转换板,下载器等。
开始还是以直接寄存器操作为主,这样可以更加了解芯片的特点和使用的方法与技巧。
比如下面的PWM初始化代码:
//PWM设置:使用B组4个PWM(4/5/6/7)输出P2.4/P2.5/P2.6/P2.7
P2_MFP = 0x0000f000; // P2.4/P2.5/P2.6/P2.7切换成PWM输出
P2_PMD = 0x000055ff; // P2.4/P2.5/P2.6/P2.7输出模式
CLKSEL2 = 0xFFFFFFAF; //0xFFFFFFAC; // 选择PWM(4/5/6/7)时钟输入为HCLK
APBCLK |= PWM45_CLKEN | PWM67_CLKEN|FDIV_CLKEN; // 同步开启PWM4/5/6/7 工作
FRQDIV = 0x00000012;
PPRB = 0x00000101; // 预分频2(PPR+1)
CSRB = 0x00004444; // 选择CSR3/CSR2/CSR1/CSR0为1,1分频for pwm7/6/5/4
PCRB = 0x08080808; // 设置PWM5/6/7/8 为循环模式
CNR0B = 0x000000ff;
CMR0B = 0x00000080;
CNR1B = 0x000000ff;
CMR1B = 0x00000080;
CNR2B = 0x000000ff;
CMR2B = 0x00000080;
CNR3B = 0x000000ff;
CMR3B = 0x00000080;
POEB = 0x0000000F;
PCRB |= 0x01010101; // PWM5/6/7/8启动
在直接调试中就发现,开启PWM的时钟(下面2句)必须放在设置PWM相关寄存器的前面。如果放在后面,那么前面设置PWM相关寄存器的操作根本就是无效的!也就是说,必须先开启PWM的时钟,然后才能设置PWM的相关寄存器。这个问题我看了多遍手册,没有发现有解释和说明。
CLKSEL2 = 0xFFFFFFAF; //0xFFFFFFAC; // 选择PWM(4/5/6/7)时钟输入为HCLK
APBCLK |= PWM45_CLKEN | PWM67_CLKEN|FDIV_CLKEN; // 同步开启PWM4/5/6/7 工作
由于直接对寄存器操作,单步在线调试方便,也非常容易找到问题所在。
hl1200aa
发表于 2010-12-5 13:48:30
老马识途,前面带路,我也跟进了。
hotpower
发表于 2010-12-6 00:22:56
回复【432楼】machao
回复【431楼】hotpower 菜农
马潮教授:
俺已将nuc1xx和m05x的头文件做完。
由于它们都属于cortex-m0,前者无ebi接口,后者无usb,rtc,i2s,can等模块。
故后者是前者的一个子集。
前者用了很多的时间,后者只用了不到两个小时,几乎是全部转抄。
所以俺准备将其和合为一个通用的头文件,内部自动识别。
-----------------------------------------------------------------------
谢谢你的捧场。
我喜欢从最底层开始玩(熟悉)东西。比如先做转换板,下载器等。
开始还是以直接寄存器操作为主,这样可以更加了解芯片的特点和使用的方法与技巧。
比如下面的pwm初始化代码:
//pwm设置:使用b组4个pwm(4/5/6/7)输出p2.4/p2.5/p2.6/p2.7
......
-----------------------------------------------------------------------
马潮教授:
今天没空,俺保留自己的观点。
新版的PWM是这样的:
//----------------------------------------------------//
typedef enum
{
PWM_PPR_CP01= 0,//PWM定时器0&1的时钟预分频0
PWM_PPR_CP23= 8,//PWM定时器2&3的时钟预分频2
PWM_PPR_DZI01 = 16,//PWM0与PWM1的死区间隔寄存器
PWM_PPR_DZI23 = 24//PWM2与PWM3的死区间隔寄存器
}NU_PWM_PPR_ENUM;
typedef enum
{
PWM_PPR03_CP01= 0,//PWM定时器0&1的时钟预分频0
PWM_PPR03_CP23= 8,//PWM定时器2&3的时钟预分频2
PWM_PPR03_DZI01 = 16,//PWM0与PWM1的死区间隔寄存器
PWM_PPR03_DZI23 = 24//PWM2与PWM3的死区间隔寄存器
}NU_PWM_PPR03_ENUM;
typedef volatile union
{
NU_REG Regs;
PWM_PPR_T Bits;
}NU_PWM_PPR_T;
//----------------------------------------------------//
typedef enum
{
PWM_PPR47_CP45= 0,//PWM定时器4&5的时钟预分频0
PWM_PPR47_CP67= 8,//PWM定时器6&7的时钟预分频2
PWM_PPR47_DZI45 = 16,//PWM4与PWM5的死区间隔寄存器
PWM_PPR47_DZI67 = 24//PWM6与PWM7的死区间隔寄存器
}NU_PWM_PPR47_ENUM;
typedef struct
{
__IO NU_REGCP45:8;
__IO NU_REGCP67:8;
__IO NU_REGDZI45:8;
__IO NU_REGDZI67:8;
}NU_PWM_PPR_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_PPR_Bits Bits;
}NU_PWM_PPR47_T;
//----------------------------------------------------//
typedef enum
{
PWM_CSR_CSR0 = 0,//定时器0时钟源选择
PWM_CSR_CSR1 = 4,//定时器1时钟源选择
PWM_CSR_CSR2 = 8,//定时器2时钟源选择
PWM_CSR_CSR3 = 12//定时器3时钟源选择
}NU_PWM_CSR_ENUM;
typedef enum
{
PWM_CSR03_CSR0 = 0,//定时器0时钟源选择
PWM_CSR03_CSR1 = 4,//定时器1时钟源选择
PWM_CSR03_CSR2 = 8,//定时器2时钟源选择
PWM_CSR03_CSR3 = 12//定时器3时钟源选择
}NU_PWM_CSR03_ENUM;
typedef volatile union
{
NU_REG Regs;
PWM_CSR_T Bits;
}NU_PWM_CSR_T;
//----------------------------------------------------//
typedef enum
{
PWM_CSR47_CSR4 = 0,//定时器4时钟源选择
PWM_CSR47_CSR5 = 4,//定时器5时钟源选择
PWM_CSR47_CSR6 = 8,//定时器6时钟源选择
PWM_CSR47_CSR7 = 12//定时器7时钟源选择
}NU_PWM_CSR47_ENUM;
typedef struct
{
__IO NU_REGCSR4:3;
__INU_REGRESERVE0:1;
__IO NU_REGCSR5:3;
__INU_REGRESERVE1:1;
__IO NU_REGCSR6:3;
__INU_REGRESERVE2:1;
__IO NU_REGCSR7:3;
__INU_REGRESERVE3:17;
}NU_PWM_CSR47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_CSR47_Bits Bits;
}NU_PWM_CSR47_T;
//----------------------------------------------------//
typedef enum
{
PWM_PCR_CH0EN= 0,//PWM定时器0使能/禁止
PWM_PCR_CH0INV = 2,//PWM定时器0反向打开/关闭
PWM_PCR_CH0MOD = 3,//PWM定时器0自动加载/单触发模式选择
PWM_PCR_DZEN01 = 4,//死区发生器0使能/禁止
PWM_PCR_DZEN23 = 5,//死区发生器2使能/禁止
PWM_PCR_CH1EN = 8,//PWM定时器1使能/禁止
PWM_PCR_CH1INV = 10,//PWM定时器1反向打开/关闭
PWM_PCR_CH1MOD = 11,//PWM定时器1自动重载/单触发模式选择
PWM_PCR_CH2EN = 16,//PWM定时器2使能/禁止
PWM_PCR_CH2INV = 18,//PWM定时器2反向打开/关闭
PWM_PCR_CH2MOD = 19,//PWM定时器2自动重载/单触发模式选择
PWM_PCR_CH3EN = 24,//PWM定时器3使能/禁止
PWM_PCR_CH3INV = 26,//PWM定时器3反向打开/关闭
PWM_PCR_CH3MOD = 27,//PWM定时器3自动重载/单触发模式选择
}NU_PWM_PCR_ENUM;
typedef enum
{
PWM_PCR03_CH0EN= 0,//PWM定时器0使能/禁止
PWM_PCR03_CH0INV = 2,//PWM定时器0反向打开/关闭
PWM_PCR03_CH0MOD = 3,//PWM定时器0自动加载/单触发模式选择
PWM_PCR03_DZEN01 = 4,//死区发生器0使能/禁止
PWM_PCR03_DZEN23 = 5,//死区发生器2使能/禁止
PWM_PCR03_CH1EN = 8,//PWM定时器1使能/禁止
PWM_PCR03_CH1INV = 10,//PWM定时器1反向打开/关闭
PWM_PCR03_CH1MOD = 11,//PWM定时器1自动重载/单触发模式选择
PWM_PCR03_CH2EN = 16,//PWM定时器2使能/禁止
PWM_PCR03_CH2INV = 18,//PWM定时器2反向打开/关闭
PWM_PCR03_CH2MOD = 19,//PWM定时器2自动重载/单触发模式选择
PWM_PCR03_CH3EN = 24,//PWM定时器3使能/禁止
PWM_PCR03_CH3INV = 26,//PWM定时器3反向打开/关闭
PWM_PCR03_CH3MOD = 27,//PWM定时器3自动重载/单触发模式选择
}NU_PWM_PCR03_ENUM;
typedef volatile union
{
NU_REG Regs;
PWM_PCR_T Bits;
}NU_PWM_PCR_T;
//----------------------------------------------------//
typedef enum
{
PWM_PCR47_CH4EN= 0,//PWM定时器4使能/禁止
PWM_PCR47_CH4INV = 2,//PWM定时器4反向打开/关闭
PWM_PCR47_CH4MOD = 3,//PWM定时器4自动加载/单触发模式选择
PWM_PCR47_DZEN45 = 4,//死区发生器4使能/禁止
PWM_PCR47_DZEN67 = 5,//死区发生器6使能/禁止
PWM_PCR47_CH5EN = 8,//PWM定时器5使能/禁止
PWM_PCR47_CH5INV = 10,//PWM定时器5反向打开/关闭
PWM_PCR47_CH5MOD = 11,//PWM定时器5自动重载/单触发模式选择
PWM_PCR47_CH6EN = 16,//PWM定时器6使能/禁止
PWM_PCR47_CH6INV = 18,//PWM定时器6反向打开/关闭
PWM_PCR47_CH6MOD = 19,//PWM定时器6自动重载/单触发模式选择
PWM_PCR47_CH7EN = 24,//PWM定时器7使能/禁止
PWM_PCR47_CH7INV = 26,//PWM定时器7反向打开/关闭
PWM_PCR47_CH7MOD = 27,//PWM定时器7自动重载/单触发模式选择
}NU_PWM_PCR47_ENUM;
typedef struct
{
__IO NU_REGCH4EN:1;
__INU_REGRESERVE0:1;
__IO NU_REGCH4INV:1;
__IO NU_REGCH4MOD:1;
__IO NU_REGDZEN45:1;
__IO NU_REGDZEN67:1;
__INU_REGRESERVE1:2;
__IO NU_REGCH5EN:1;
__INU_REGRESERVE2:1;
__IO NU_REGCH5INV:1;
__IO NU_REGCH5MOD:1;
__INU_REGRESERVE3:4;
__IO NU_REGCH6EN:1;
__INU_REGRESERVE4:1;
__IO NU_REGCH6INV:1;
__IO NU_REGCH6MOD:1;
__INU_REGRESERVE5:4;
__IO NU_REGCH7EN:1;
__INU_REGRESERVE6:1;
__IO NU_REGCH7INV:1;
__IO NU_REGCH7MOD:1;
__INU_REGRESERVE7:4;
}NU_PWM_PCR47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_PCR47_Bits Bits;
}NU_PWM_PCR47_T;
//----------------------------------------------------//
typedef enum
{
PWM_PBCR_BCn = 0
}NU_PWM_PBCR_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_PBCR_T Bits;
}NU_PWM_PBCR_T;
//----------------------------------------------------//
typedef enum
{
PWM_PIER_PWMIE0 = 0,//PWM定时器0中断使能
PWM_PIER_PWMIE1 = 1,//PWM定时器1中断使能
PWM_PIER_PWMIE2 = 2,//PWM定时器2中断使能
PWM_PIER_PWMIE3 = 3 //PWM定时器3中断使能
}NU_PWM_PIER_NUM;
typedef enum
{
PWM_PIER03_PWMIE0 = 0,//PWM定时器0中断使能
PWM_PIER03_PWMIE1 = 1,//PWM定时器1中断使能
PWM_PIER03_PWMIE2 = 2,//PWM定时器2中断使能
PWM_PIER03_PWMIE3 = 3 //PWM定时器3中断使能
}NU_PWM_PIER03_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_PIER_T Bits;
}NU_PWM_PIER_T;
//----------------------------------------------------//
typedef enum
{
PWM_PIER47_PWMIE4 = 0,//PWM定时器4中断使能
PWM_PIER47_PWMIE5 = 1,//PWM定时器5中断使能
PWM_PIER47_PWMIE6 = 2,//PWM定时器6中断使能
PWM_PIER47_PWMIE7 = 3 //PWM定时器7中断使能
}NU_PWM_PIER47_NUM;
typedef struct
{
__IO NU_REGPWMIE4:1;
__IO NU_REGPWMIE5:1;
__IO NU_REGPWMIE6:1;
__IO NU_REGPWMIE7:1;
__INU_REGRESERVE:28;
}NU_PWM_PIER47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_PIER47_Bits Bits;
}NU_PWM_PIER47_T;
//----------------------------------------------------//
typedef enum
{
PWM_PIIR_PWMIF0 = 0,//PWM定时器0中断标志
PWM_PIIR_PWMIF1 = 1,//PWM定时器1中断标志
PWM_PIIR_PWMIF2 = 2,//PWM定时器2中断标志
PWM_PIIR_PWMIF3 = 3 //PWM定时器3中断标志
}NU_PWM_PIIR_NUM;
typedef enum
{
PWM_PIIR03_PWMIF0 = 0,//PWM定时器0中断标志
PWM_PIIR03_PWMIF1 = 1,//PWM定时器1中断标志
PWM_PIIR03_PWMIF2 = 2,//PWM定时器2中断标志
PWM_PIIR03_PWMIF3 = 3 //PWM定时器3中断标志
}NU_PWM_PIIR03_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_PIIR_T Bits;
}NU_PWM_PIIR_T;
//----------------------------------------------------//
typedef enum
{
PWM_PIIR47_PWMIF4 = 0,//PWM定时器4中断标志
PWM_PIIR47_PWMIF5 = 1,//PWM定时器5中断标志
PWM_PIIR47_PWMIF6 = 2,//PWM定时器6中断标志
PWM_PIIR47_PWMIF7 = 3 //PWM定时器7中断标志
}NU_PWM_PIIR47_NUM;
typedef struct
{
__IO NU_REGPWMIF5:1;
__IO NU_REGPWMIF6:1;
__IO NU_REGPWMIF7:1;
__IO NU_REGPWMIF8:1;
__INU_REGRESERVE:28;
}NU_PWM_PIIR47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_PIIR47_Bits Bits;
}NU_PWM_PIIR47_T;
//----------------------------------------------------//
typedef enum
{
PWM_CCR0_INV0 = 0,//通道0反向打开/关闭
PWM_CCR0_CRL_IE0 = 1,//通道0向上计数中断使能
PWM_CCR0_CFL_IE0 = 2,//通道0向下计数中断使能
PWM_CCR0_CAPCH0EN = 3,//捕捉器通道0传输使能/禁止
PWM_CCR0_CAPIF0 = 4,//捕捉器0中断标志
PWM_CCR0_CRLRI0 = 6,//捕捉器通道0传输使能/禁止
PWM_CCR0_CFLRI0 = 7,//CFLR0锁定方向标志位
PWM_CCR0_INV1 = 16,//通道1反向打开/关闭
PWM_CCR0_CRL_IE1 = 17,//通道1向上计数中断使能
PWM_CCR0_CFL_IE1 = 18,//通道1向下计数中断使能
PWM_CCR0_CAPCH1EN = 19,//捕捉器通道1传输使能/禁止
PWM_CCR0_CAPIF1 = 20,//捕捉器1中断标志
PWM_CCR0_CRLRI1 = 22,//CRLR1锁定方向标志位
PWM_CCR0_CFLRI1 = 23//CFLR1锁定方向标志位
}NU_PWM_CCR0_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_CCR0_T Bits;
}NU_PWM_CCR0_T;
//----------------------------------------------------//
typedef enum
{
PWM_CCR4_INV4 = 0,//通道4反向打开/关闭
PWM_CCR4_CRL_IE4 = 1,//通道4向上计数中断使能
PWM_CCR4_CFL_IE4 = 2,//通道4向下计数中断使能
PWM_CCR4_CAPCH4EN = 3,//捕捉器通道4传输使能/禁止
PWM_CCR4_CAPIF4 = 4,//捕捉器4中断标志
PWM_CCR4_CRLRI4 = 6,//捕捉器通道4传输使能/禁止
PWM_CCR4_CFLRI4 = 7,//CFLR4锁定方向标志位
PWM_CCR4_INV5 = 16,//通道5反向打开/关闭
PWM_CCR4_CRL_IE5 = 17,//通道5向上计数中断使能
PWM_CCR4_CFL_IE5 = 18,//通道5向下计数中断使能
PWM_CCR4_CAPCH5EN = 19,//捕捉器通道1传输使能/禁止
PWM_CCR4_CAPIF5 = 20,//捕捉器5中断标志
PWM_CCR4_CRLRI5 = 22,//CRLR5锁定方向标志位
PWM_CCR4_CFLRI5 = 23//CFLR5锁定方向标志位
}NU_PWM_CCR4_NUM;
typedef struct
{
__IO NU_REGINV4:1;
__IO NU_REGCRL_IE4:1;
__IO NU_REGCFL_IE4:1;
__IO NU_REGCAPCH4EN:1;
__IO NU_REGCAPIF4:1;
__INU_REGRESERVE4:1;
__IO NU_REGCRLRI4:1;
__IO NU_REGCFLRI4:1;
__INU_REGRESERVE1:8;
__IO NU_REGINV5:1;
__IO NU_REGCRL_IE5:1;
__IO NU_REGCFL_IE5:1;
__IO NU_REGCAPCH5EN:1;
__IO NU_REGCAPIF5:1;
__INU_REGRESERVE2:1;
__IO NU_REGCRLRI5:1;
__IO NU_REGCFLRI5:1;
__INU_REGRESERVE3:8;
}NU_PWM_CCR4_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_CCR4_BitsBits;
}NU_PWM_CCR4_T;
//----------------------------------------------------//
typedef enum
{
PWM_CCR2_INV2 = 0,//通道2反向打开/关闭
PWM_CCR2_CRL_IE2 = 1,//通道2向上计数中断使能
PWM_CCR2_CFL_IE2 = 2,//通道2向下计数中断使能
PWM_CCR2_CAPCH2EN = 3,//捕捉器通道2传输使能/禁止
PWM_CCR2_CAPIF2 = 4,//捕捉器2中断标志
PWM_CCR2_CRLRI2 = 6,//CRLR2锁定方向标志位
PWM_CCR2_CFLRI2 = 7,//CFLR2锁定方向标志位
PWM_CCR2_INV3 = 16,//通道3反向打开/关闭
PWM_CCR2_CRL_IE3 = 17,//通道3向上计数中断使能
PWM_CCR2_CFL_IE3 = 18,//通道3向下计数中断使能
PWM_CCR2_CAPCH3EN = 19,//捕捉器通道3传输使能/禁止
PWM_CCR2_CAPIF3 = 20,//捕捉器3中断标志
PWM_CCR2_CRLRI3 = 22,//CRLR3锁定方向标志位
PWM_CCR2_CFLRI3 = 23//CFLR3锁定方向标志位
}NU_PWM_CCR2_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_CCR2_T Bits;
}NU_PWM_CCR2_T;
//----------------------------------------------------//
typedef enum
{
PWM_CCR6_INV6 = 0,//通道6反向打开/关闭
PWM_CCR6_CRL_IE6 = 1,//通道6向上计数中断使能
PWM_CCR6_CFL_IE6 = 2,//通道6向下计数中断使能
PWM_CCR6_CAPCH6EN = 3,//捕捉器通道6传输使能/禁止
PWM_CCR6_CAPIF6 = 4,//捕捉器6中断标志
PWM_CCR6_CRLRI6 = 6,//捕捉器通道6传输使能/禁止
PWM_CCR6_CFLRI6 = 7,//CFLR6锁定方向标志位
PWM_CCR6_INV7 = 16,//通道7反向打开/关闭
PWM_CCR6_CRL_IE7 = 17,//通道7向上计数中断使能
PWM_CCR6_CFL_IE7 = 18,//通道7向下计数中断使能
PWM_CCR6_CAPCH7EN = 19,//捕捉器通道7传输使能/禁止
PWM_CCR6_CAPIF7 = 20,//捕捉器7中断标志
PWM_CCR6_CRLRI7 = 22,//CRLR7锁定方向标志位
PWM_CCR6_CFLRI7 = 23//CFLR7锁定方向标志位
}NU_PWM_CCR6_NUM;
typedef struct
{
__IO NU_REGINV6:1;
__IO NU_REGCRL_IE6:1;
__IO NU_REGCFL_IE6:1;
__IO NU_REGCAPCH6EN:1;
__IO NU_REGCAPIF6:1;
__INU_REGRESERVE4:1;
__IO NU_REGCRLRI6:1;
__IO NU_REGCFLRI6:1;
__INU_REGRESERVE1:8;
__IO NU_REGINV7:1;
__IO NU_REGCRL_IE7:1;
__IO NU_REGCFL_IE7:1;
__IO NU_REGCAPCH7EN:1;
__IO NU_REGCAPIF7:1;
__INU_REGRESERVE2:1;
__IO NU_REGCRLRI7:1;
__IO NU_REGCFLRI7:1;
__INU_REGRESERVE3:8;
}NU_PWM_CCR6_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_CCR6_BitsBits;
}NU_PWM_CCR6_T;
//----------------------------------------------------//
typedef enum
{
PWM_POE_PWM0 = 0,//PWM0输出使能寄存器
PWM_POE_PWM1 = 1,//PWM1输出使能寄存器
PWM_POE_PWM2 = 2,//PWM2输出使能寄存器
PWM_POE_PWM3 = 3 //PWM3输出使能寄存器
}NU_PWM_POE_NUM;
typedef enum
{
PWM_POE03_PWM0 = 0,//PWM0输出使能寄存器
PWM_POE03_PWM1 = 1,//PWM1输出使能寄存器
PWM_POE03_PWM2 = 2,//PWM2输出使能寄存器
PWM_POE03_PWM3 = 3 //PWM3输出使能寄存器
}NU_PWM_POE03_NUM;
typedef volatile union
{
NU_REG Regs;
PWM_POE_T Bits;
}NU_PWM_POE_T;
//----------------------------------------------------//
typedef enum
{
PWM_POE47_PWM4 = 0,//PWM4输出使能寄存器
PWM_POE47_PWM5 = 1,//PWM5输出使能寄存器
PWM_POE47_PWM6 = 2,//PWM6输出使能寄存器
PWM_POE47_PWM7 = 3 //PWM7输出使能寄存器
}NU_PWM_POE47_NUM;
typedef struct
{
__IO NU_REGPWM4:1;
__IO NU_REGPWM5:1;
__IO NU_REGPWM6:1;
__IO NU_REGPWM7:1;
__INU_REGRESERVE:28;
}NU_PWM_POE47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_POE47_Bits Bits;
}NU_PWM_POE47_T;
//----------------------------------------------------//
typedef enum
{
PWM_CAPENR03_PWM0_PA12 = 0,//捕捉通道0从GPA12输入
PWM_CAPENR03_PWM1_PA13 = 1,//捕捉通道1从GPA13输入
PWM_CAPENR03_PWM2_PA14 = 2,//捕捉通道3从GPA14输入
PWM_CAPENR03_PWM3_PA15 = 3 //捕捉通道4从GPA15输入
}NU_PWM_CAPENR03_NUM;
typedef struct
{
__IO NU_REGPWM0_PA12:1;
__IO NU_REGPWM1_PA13:1;
__IO NU_REGPWM2_PA14:1;
__IO NU_REGPWM3_PA15:1;
__INU_REGRESERVE:28;
}NU_PWM_CAPENR03_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_CAPENR03_Bits Bits;
}NU_PWM_CAPENR03_T;
//----------------------------------------------------//
typedef enum
{
PWM_CAPENR47_PWM4_PA11 = 0,//捕捉通道4从GPA11输入
PWM_CAPENR47_PWM5_PA5= 1,//捕捉通道5从GPA5输入
PWM_CAPENR47_PWM6_PA0= 2,//捕捉通道6从GPA0输入
PWM_CAPENR47_PWM7_PA1= 3 //捕捉通道7从GPA1输入
}NU_PWM_CAPENR47_NUM;
typedef struct
{
__IO NU_REGPWM4_PA11:1;
__IO NU_REGPWM5_PA5:1;
__IO NU_REGPWM6_PA0:1;
__IO NU_REGPWM7_PA1:1;
__INU_REGRESERVE:28;
}NU_PWM_CAPENR47_Bits;
typedef volatile union
{
NU_REG Regs;
NU_PWM_CAPENR47_Bits Bits;
}NU_PWM_CAPENR47_T;
//----------------------------------------------------//
typedef struct
{
union{
__IO NU_PWM_PPR_T PPR;//PWM0~3或PWM4~7预分频寄存器
__IO NU_PWM_PPR_T PPR03;//PWM0~3预分频寄存器
__IO NU_PWM_PPR47_TPPR47;//PWM4~7预分频寄存器
};
union{
__IO NU_PWM_CSR_T CSR;//PWM0~3或PWM4~7时钟选择寄存器
__IO NU_PWM_CSR_T CSR03;//PWM0~3时钟选择寄存器
__IO NU_PWM_CSR47_TCSR47;//PWM4~7时钟选择寄存器
};
union{
__IO NU_PWM_PCR_T PCR;//PWM0~3或PWM4~7控制寄存器
__IO NU_PWM_PCR_T PCR03;//PWM0~3控制寄存器
__IO NU_PWM_PCR47_TPCR47;//PWM4~7控制寄存器
};
union{
__IO NU_REG_BITs CNR0;//PWM0计数器寄存器
__IO NU_REG_BITs CNR4;//PWM4计数器寄存器
};
union{
__IO NU_REG_BITs CMR0;//PWM0比较寄存器
__IO NU_REG_BITs CMR4;//PWM4比较寄存器
};
union{
__IO NU_REG_BITs PDR0;//PWM0数据寄存器
__IO NU_REG_BITs PDR4;//PWM4数据寄存器
};
union{
__IO NU_REG_BITs CNR1;//PWM1计数器寄存器
__IO NU_REG_BITs CNR5;//PWM5计数器寄存器
};
union{
__IO NU_REG_BITs CMR1;//PWM1比较寄存器
__IO NU_REG_BITs CMR5;//PWM5比较寄存器
};
union{
__IO NU_REG_BITs PDR1;//PWM1数据寄存器
__IO NU_REG_BITs PDR5;//PWM5数据寄存器
};
union{
__IO NU_REG_BITs CNR2;//PWM2计数器寄存器
__IO NU_REG_BITs CNR6;//PWM6计数器寄存器
};
union{
__IO NU_REG_BITs CMR2;//PWM2比较寄存器
__IO NU_REG_BITs CMR6;//PWM6比较寄存器
};
union{
__IO NU_REG_BITs PDR2;//PWM2数据寄存器
__IO NU_REG_BITs PDR6;//PWM6数据寄存器
};
union{
__IO NU_REG_BITs CNR3;//PWM3计数器寄存器
__IO NU_REG_BITs CNR7;//PWM7计数器寄存器
};
union{
__IO NU_REG_BITs CMR3;//PWM3比较寄存器
__IO NU_REG_BITs CMR7;//PWM7比较寄存器
};
union{
__IO NU_REG_BITs PDR3;//PWM3数据寄存器
__IO NU_REG_BITs PDR7;//PWM7数据寄存器
};
__IO NU_PWM_PBCR_T PBCR;
union{
__IO NU_PWM_PIER_T PIER;//PWM0~3或PWM4~7中断使能寄存器
__IO NU_PWM_PIER_T PIER03;//PWM0~3中断使能寄存器
__IO NU_PWM_PIER47_T PIER47;//PWM4~7中断使能寄存器
};
union{
__IO NU_PWM_PIIR_T PIIR;//PWM0~3或PWM4~7中断标志寄存器
__IO NU_PWM_PIIR_T PIIR03;//PWM0~3中断标志寄存器
__IO NU_PWM_PIIR47_T PIIR47;//PWM4~7中断标志寄存器
__IO NU_PWM_PIIR_T PIFR;//PWM0~3或PWM4~7中断标志寄存器
__IO NU_PWM_PIIR_T PIFR03;//PWM0~3中断标志寄存器
__IO NU_PWM_PIIR47_T PIFR47;//PWM4~7中断标志寄存器
};
__I NU_REG RESERVE1;
union{
__IO NU_PWM_CCR0_T CCR0;//捕捉控制寄存器01
__IO NU_PWM_CCR4_T CCR4;//捕捉控制寄存器45
__IO NU_PWM_CCR0_T CCR1;//捕捉控制寄存器01
__IO NU_PWM_CCR4_T CCR5;//捕捉控制寄存器45
__IO NU_PWM_CCR0_T CCR01;//捕捉控制寄存器01
__IO NU_PWM_CCR4_T CCR45;//捕捉控制寄存器45
};
union{
__IO NU_PWM_CCR2_T CCR2;//捕捉控制寄存器23
__IO NU_PWM_CCR6_T CCR6;//捕捉控制寄存器67
__IO NU_PWM_CCR2_T CCR3;//捕捉控制寄存器23
__IO NU_PWM_CCR6_T CCR7;//捕捉控制寄存器67
__IO NU_PWM_CCR2_T CCR23;//捕捉控制寄存器23
__IO NU_PWM_CCR6_T CCR67;//捕捉控制寄存器67
};
union{
__IO NU_REG_BITs CRLR0;//捕捉上升沿锁存寄存器0
__IO NU_REG_BITs CRLR4;//捕捉上升沿锁存寄存器4
};
union{
__IO NU_REG_BITs CFLR0;//捕捉下降沿锁存寄存器0
__IO NU_REG_BITs CFLR4;//捕捉下降沿锁存寄存器4
};
union{
__IO NU_REG_BITs CRLR1;//捕捉上升沿锁存寄存器1
__IO NU_REG_BITs CRLR5;//捕捉上升沿锁存寄存器5
};
union{
__IO NU_REG_BITs CFLR1;//捕捉下降沿锁存寄存器1
__IO NU_REG_BITs CFLR5;//捕捉下降沿锁存寄存器5
};
union{
__IO NU_REG_BITs CRLR2;//捕捉上升沿锁存寄存器2
__IO NU_REG_BITs CRLR6;//捕捉上升沿锁存寄存器6
};
union{
__IO NU_REG_BITs CFLR2;//捕捉下降沿锁存寄存器2
__IO NU_REG_BITs CFLR6;//捕捉下降沿锁存寄存器6
};
union{
__IO NU_REG_BITs CRLR3;//捕捉上升沿锁存寄存器3
__IO NU_REG_BITs CRLR7;//捕捉上升沿锁存寄存器7
};
union{
__IO NU_REG_BITs CFLR3;//捕捉下降沿锁存寄存器3
__IO NU_REG_BITs CFLR7;//捕捉下降沿锁存寄存器7
};
union{
__IO NU_REG_BITs CAPENR;//捕捉输入使能寄存器
__IO NU_PWM_CAPENR03_T CAPENR03;//捕捉输入03使能寄存器
__IO NU_PWM_CAPENR47_T CAPENR47;//捕捉输入47使能寄存器
};
union{
__IO NU_PWM_POE_T POE;//PWM输出使能寄存器
__IO NU_PWM_POE_T POE03;//PWM输出03使能寄存器
__IO NU_PWM_POE47_TPOE47;//PWM输出47使能寄存器
};
}NU_PWM_T;
//----------------------------------------------------//
#define PWM03s (*((NU_PWM_T *) PWMA_BASE))//定位全局结构变量PWM03s
#define PWM47s (*((NU_PWM_T *) PWMB_BASE))//定位全局结构变量PWM47s
//----------------------------------------------------//
#define PWM0s (*((NU_PWM_T *) PWMA_BASE))//定位全局结构变量PWM0s
#define PWM1s (*((NU_PWM_T *) PWMA_BASE))//定位全局结构变量PWM`s
#define PWM2s (*((NU_PWM_T *) PWMA_BASE))//定位全局结构变量PWM2s
#define PWM3s (*((NU_PWM_T *) PWMA_BASE))//定位全局结构变量PWM3s
#define PWM4s (*((NU_PWM_T *) PWMB_BASE))//定位全局结构变量PWM4s
#define PWM5s (*((NU_PWM_T *) PWMB_BASE))//定位全局结构变量PWM5s
#define PWM6s (*((NU_PWM_T *) PWMB_BASE))//定位全局结构变量PWM6s
#define PWM7s (*((NU_PWM_T *) PWMB_BASE))//定位全局结构变量PWM7s
//----------------------------------------------------//
#define PWMx(x) ((NU_PWM_T *)PWMA_BASE + ((x >> 4) * 0x100000))
//----------------------------------------------------//
851822381
发表于 2010-12-16 16:29:31
以前哪个帐号上不了了---
现在几家大厂都有推广CORTEX-M,比如TI、ST、飞思卡尔、ATMEL、FUJITSU、ENERGY
合泰也有加入,但MO目前只有新唐和NXP,新唐产品系列更全一些,跟8位、16兼容性更好
真正的RAM时代已经到来----
kaixinlaohe
发表于 2010-12-22 09:21:51
mark
kongjie07
发表于 2010-12-22 10:05:39
mark!
851822381
发表于 2010-12-22 21:34:50
1月6号 深圳站MO培训报名开始((4小时内学会NuMicoro Cortex-M0,免费赠送开发板一套):
smartzou
发表于 2010-12-23 18:06:00
mark
wsgj0
发表于 2011-1-4 11:01:57
观望,不知是否有仿真器,不太习惯在线调试
zhiwei
发表于 2011-1-8 20:35:17
打样的板子回来了(一个新产品的)。也买了UN-LINK,今天初步调试,说说感觉。
以前都是看文档,所以没有深入了解,今天搞了半天,
1.解决了第一个问题:PLL配置的时候输入时钟源那里中文文档翻译反了,搞了半天没有反应。。。
2.配置成功后发现48MHz时钟下,软件IO循环取反出来的频率只有1.333MHz。。。太慢了吧,都怀疑是我软件有问题。。。
3.关于开发工具:用IAR+UNLINK没有搞定,就直接ICP编程看结果了,AVR的时候 习惯这样搞。现在LDROM没有预置BOOTLOADER,所以必须要有SWD接口的调试器才能开始开发。AVR开发的时候ISP协议比较简单,我自己DIY了脱机下载器(主要是方便OSCCAL加密),做了几个给生产线批量用。现在M051想搞批量脱机编程器就比较麻烦了。。SWD协议比较复杂呀。
ssaweee
发表于 2011-1-9 13:03:54
lpc m0这个性能的价格差不多吧
主要是看到新塘没有m3的比较倾向lpc11的
machao
发表于 2011-1-9 15:40:57
回复【441楼】zhiwei
打样的板子回来了(一个新产品的)。也买了un-link,今天初步调试,说说感觉。
以前都是看文档,所以没有深入了解,今天搞了半天,
1.解决了第一个问题:pll配置的时候输入时钟源那里中文文档翻译反了,搞了半天没有反应。。。
2.配置成功后发现48mhz时钟下,软件io循环取反出来的频率只有1.333mhz。。。太慢了吧,都怀疑是我软件有问题。。。
3.关于开发工具:用iar+unlink没有搞定,就直接icp编程看结果了,avr的时候 习惯这样搞。现在ldrom没有预置bootloader,所以必须要有swd接口的调试器才能开始开发。avr开发的时候isp协议比较简单,我自己diy了脱机下载器(主要是方便osccal加密),做了几个给生产线批量用。现在m051想搞批量脱机编程器就比较麻烦了。。swd协议比较复杂呀。
-----------------------------------------------------------------------
1。新唐的UN-LINK具备脱机下载的功能,使用ICP,也不算太贵。UN-LINK-ME不具备脱机下载功能。但都支持在片的实时仿真。
2。如果批量,建议直接使用ICP方式,比ISP的bootload方便,占用的I/O个数也相同
zhiwei
发表于 2011-1-9 21:26:52
我也是这样想的,所以买了UN_LINK,不过有点儿贵。以后再买几个吧。
perfection
发表于 2011-1-21 20:02:12
mark
lixupeng
发表于 2011-1-21 20:37:43
看看!!
XQGG
发表于 2011-2-12 11:39:23
强帖 留名
tyqhaha
发表于 2011-2-12 12:59:49
M3板子还没摸透,唔唔。。
3jiami
发表于 2011-2-12 13:06:19
阿莫的电子邮购部怎么不卖PIC的片子呢?
armok
发表于 2011-2-12 13:11:53
122402902
发表于 2011-2-14 11:50:06
希望能出书
新塘的芯片不错 但是库文件和芯片dataheet看的人想死。I2C看移植例程不通。没办法只能搞IO口模拟的。郁闷!
littlejia
发表于 2011-2-20 16:27:29
支持,,
jianjun42
发表于 2011-2-20 17:03:53
严重期待
xilou
发表于 2011-3-14 23:54:42
不知道是不是第一次留名,但ID却是已经注_册好久了。
wuyiduan
发表于 2011-3-30 16:29:01
LS的,05年注_册以来就发了这一个贴
佩服
13410362373
发表于 2011-4-7 16:43:07
LS的,05年注_册以来就发了这一个贴
佩服
潜水很深---出来透口气--
13410362373
发表于 2011-4-7 16:43:55
本月杭州站,新唐有一个培训,大家留意下!
oaixuw
发表于 2011-4-8 12:21:16
mark
bbs2009
发表于 2011-4-8 13:15:09
642142533
发表于 2011-4-18 12:38:22
支持马潮老师
liubo1234
发表于 2011-5-12 15:08:41
NXP M0 LPC11XX很低价
god-father
发表于 2011-5-23 14:42:48
大吉大利,AVR看来已经完全活过来了,价格比去年低很多,且供货充足。
lrbdh
发表于 2011-5-26 12:25:09
mark
zjy9430
发表于 2011-5-26 15:28:34
AVR好像复活了哦
ouyj_0210
发表于 2011-5-26 18:00:43
mark
funv
发表于 2011-5-28 15:52:30
好热闹,MARK
yanshengdian
发表于 2011-6-14 11:11:15
标题党, 大大的标题党, 把我给引过来了
songshanxiaozi
发表于 2011-6-28 20:34:18
建议专攻CM3
Biliy
发表于 2011-7-5 09:17:04
MARK
cdlxzlp
发表于 2011-7-10 18:02:34
怎么还搞不搞 M051呢??希望能火起来
728196
发表于 2011-7-10 18:42:01
没用过AVR的飘过!!
lantian0099
发表于 2011-7-10 21:21:41
邮购的M0在还没发...等教程~
tycho41
发表于 2011-7-10 21:47:44
跟进~~
yirenonege
发表于 2011-7-11 22:39:20
是不是产能越落后 要价越高啊
machao
发表于 2011-7-11 23:02:03
回复【463楼】god-father 教父
大吉大利,avr看来已经完全活过来了,价格比去年低很多,且供货充足。
-----------------------------------------------------------------------
AVR是8位,当做个东西8位有点不合适的话,那么就是32位的。
M051是32位的,如果5元一片,而且功能比AVR还强(5元的价格,AVR也就是M8吧,M16也买不到),8位的市场就会动摇。
此时8位的价格就必须再低,才能与32位的抗衡。
我们左右不了市场的发展,但掌握32位的使用应该早做准备。当你51、AVR、MO51、STM32都会的话,还怕没有吃饭的地方?
CrazyJohn
发表于 2011-7-12 15:41:32
关键是AVR已经严重伤害了用户,
以后会不会再一次的。。。?
god-father
发表于 2011-7-18 12:22:26
回复【476楼】machao
avr是8位,当做个东西8位有点不合适的话,那么就是32位的。
m051是32位的,如果5元一片,而且功能比avr还强(5元的价格,avr也就是m8吧,m16也买不到),8位的市场就会动摇。
此时8位的价格就必须再低,才能与32位的抗衡。
我们左右不了市场的发展,但掌握32位的使用应该早做准备。当你51、avr、mo51、stm32都会的话,还怕没有吃饭的地方?
-----------------------------------------------------------------------
个人觉得选MCU还是根据自己的应用跟喜好选择好,如果市场上新出一个片子就去跟风,那会很累的。
当然自己的应用也会不停变化,同时不排除新片子的应用。
当然要去弄新片子,难度也不会很大,因为技术是相通的。
luohua
发表于 2011-12-17 18:17:57
m0这么强,那么有应用的例子吗?,传来看看吧,板子的电路图也秀秀吧
b951011
发表于 2012-4-9 16:41:14
M051確實是要開始學習了
choovin
发表于 2012-4-9 17:29:10
呵呵,顶起!!!!http://www.choovin.com/news/?.jpg
liuhengpeng123
发表于 2012-4-9 17:46:49
哈哈,avr搞不搞m051,看来以后就少见avr了。
www_Kite
发表于 2012-4-22 23:58:45
M0,{:funk:} 这么便宜的ARM啊。。。
IamPolaris
发表于 2012-5-10 17:36:20
哇塞!这个还真是一种潮流呀。我也要做个弄潮儿{:lol:}
xizi
发表于 2012-5-10 21:04:35
原来是生不如死。我还奇怪为什么下结论说AVR已死?非常欣赏32位单片机。
BCE312
发表于 2012-5-10 23:39:42
又是一篇讨论精彩的帖子!
yfgww
发表于 2012-7-30 10:35:44
学习,顶起来
qgbgzp
发表于 2012-8-18 19:08:11
计划学学M0516
yanse1214
发表于 2012-8-22 23:31:32
技术变化好快啊。
gwfree
发表于 2012-8-23 14:24:54
很久没关注AVR的价格了。。。居然涨的这么可怕
gwj221
发表于 2012-8-23 14:34:54
AVR现在还好吗?
ppopp
发表于 2012-9-3 08:14:30
AVR死定了,连厂家也是这么认为的.
plc_avr
发表于 2012-9-3 08:43:06
还好,老大发这个贴子的时候,开始转战M0,AVR早该扔一边去了。
hclin
发表于 2012-11-16 13:38:47
天啊~ 还要购买 NU-LINK 才行?
没办法自制吗?
这个问题不解决, M051永远无法成为气候的.
Gost
发表于 2013-1-5 23:52:04
看这这个片子价格 还是很有诱惑力的呢
skjweoqi
发表于 2013-2-11 09:37:37
强烈支持!
hongkong
发表于 2013-7-30 11:28:47
留名,支持马老师
carsio
发表于 2013-8-31 18:15:59
支持{:sad:}