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:}
页: 1 2 3 4 [5] 6
查看完整版本: AVR已死,建议马老师编写M051的入门资料,快速进入M051新纪元...