智能车制作
标题:
想了解关于拨码开关的一些知识?时间有些紧迫,不能自己细搞,急需,望大神理解。
[打印本页]
作者:
龙少3
时间:
2013-7-6 15:21
标题:
想了解关于拨码开关的一些知识?时间有些紧迫,不能自己细搞,急需,望大神理解。
K60硬件上拉电阻的位置,和程序关于IO的编程是如何控制速度的?在此谢过!
作者:
杨飞思卡尔
时间:
2013-7-6 22:38
作者:
juwaylee
时间:
2013-7-7 13:56
假如你懂怎么读取IO口的状态
作者:
kanwoe
时间:
2013-8-27 17:30
作者:
℡单身旅行
时间:
2013-8-28 08:33
作者:
℡单身旅行
时间:
2013-8-28 08:35
拨码开关就是你连接到I/O口 如果一端全部给低电平,另一端检测连接到I/O口上就可以了 还是很简单的。。。
作者:
℡单身旅行
时间:
2013-8-28 08:35
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
REFDV=1; //总线时钟=48/2=24MHz
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x80; //选定锁相环时钟
}
void PWM3_Init()
{
PWME_PWME3=0x00; // Disable PWM 禁止
PWMPRCLK=0x33; // 0011 0011 A=B=24M/8=3M 时钟预分频寄存器设置 //T/2^n n=0011
PWMSCLA=150; // SA=A/2/150=10k 时钟设置
PWMSCLB=15; // SB=B/2/15 =100k 时钟设置
PWMCLK_PCLK3=1; // PWM3-----SB 时钟源的选择
PWMPOL_PPOL3=1; // Duty=High Time 极性设置
PWMCAE_CAE3=1; // Left-aligned 对齐方式设置
PWMCTL=0x00; // no concatenation 控制寄存器设置
PWMPER3=100; // Frequency=SB/100=1K 周期寄存器设置
PWMDTY3=10; // Duty cycle = 50% 占空比寄存器设置
PWME_PWME3=1; // Enable PWM 使能
}
void delayms(byte b)
{
byte i;
int delayms;
for(i=0;i<b;i++)
for(delayms=0;delayms<1000;delayms++)
asm("nop");
}
void main ()
{ uchar a,b,c,d,e;
DDRP_DDRP2=0; DDRP_DDRP4=0;DDRP_DDRP0=0;DDRP_DDRP7=0;
PWM3_Init();
while(1)
{ a=PTIP_PTIP0;b=PTIP_PTIP2;c=PTIP_PTIP4;d=PTIP_PTIP7;
delayms(5); delayms(5); delayms(5);
e=8*d+c*4+b*2+a;
switch(e)
{
case 14: PWMDTY3=30;break;
case 13: PWMDTY3=40;break;
case 11: PWMDTY3=50;break;
case 10: PWMDTY3=53;break;
case 9: PWMDTY3=56;break;
case 3: PWMDTY3=59;break;
case 7: PWMDTY3=65;break;
case 15: PWMDTY3=20;break;
default:break;
}
}
}
作者:
℡单身旅行
时间:
2013-8-28 08:36
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
REFDV=1; //总线时钟=48/2=24MHz
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x80; //选定锁相环时钟
}
void PWM3_Init()
{
PWME_PWME3=0x00; // Disable PWM 禁止
PWMPRCLK=0x33; // 0011 0011 A=B=24M/8=3M 时钟预分频寄存器设置 //T/2^n n=0011
PWMSCLA=150; // SA=A/2/150=10k 时钟设置
PWMSCLB=15; // SB=B/2/15 =100k 时钟设置
PWMCLK_PCLK3=1; // PWM3-----SB 时钟源的选择
PWMPOL_PPOL3=1; // Duty=High Time 极性设置
PWMCAE_CAE3=1; // Left-aligned 对齐方式设置
PWMCTL=0x00; // no concatenation 控制寄存器设置
PWMPER3=100; // Frequency=SB/100=1K 周期寄存器设置
PWMDTY3=10; // Duty cycle = 50% 占空比寄存器设置
PWME_PWME3=1; // Enable PWM 使能
}
void delayms(byte b)
{
byte i;
int delayms;
for(i=0;i<b;i++)
for(delayms=0;delayms<1000;delayms++)
asm("nop");
}
void main ()
{ uchar a,b,c,d,e;
DDRP_DDRP2=0; DDRP_DDRP4=0;DDRP_DDRP0=0;DDRP_DDRP7=0;
PWM3_Init();
while(1)
{ a=PTIP_PTIP0;b=PTIP_PTIP2;c=PTIP_PTIP4;d=PTIP_PTIP7;
delayms(5); delayms(5); delayms(5);
e=8*d+c*4+b*2+a;
switch(e)
{
case 14: PWMDTY3=30;break;
case 13: PWMDTY3=40;break;
case 11: PWMDTY3=50;break;
case 10: PWMDTY3=53;break;
case 9: PWMDTY3=56;break;
case 3: PWMDTY3=59;break;
case 7: PWMDTY3=65;break;
case 15: PWMDTY3=20;break;
default:break;
}
}
}
作者:
jianghao9028
时间:
2013-8-28 08:40
作者:
石头王
时间:
2013-8-29 22:12
作者:
石头王
时间:
2013-8-30 13:05
作者:
archimedes
时间:
2013-9-10 23:47
基础的拨码开关比较好实现
但是要用少数个IO口控制很多个开关就……
需要动脑子用外部电路实现
曾看到过4个IO控制29开关的
作者:
paul16
时间:
2013-10-26 10:31
同求
作者:
60飘过
时间:
2013-11-6 23:23
mark
作者:
鬼魅小舞
时间:
2013-11-7 07:59
不明觉厉呀
作者:
2417838042
时间:
2014-8-21 15:29
作者:
北区stan
时间:
2014-8-21 20:59
作者:
1685063539
时间:
2014-8-27 14:34
作者:
【征程】
时间:
2014-8-27 22:48
作者:
【征程】
时间:
2014-8-27 22:49
高电平拉低不就可以了 啊
作者:
【征程】
时间:
2014-8-27 22:50
作者:
╰Chikara丶
时间:
2014-9-4 21:02
顶
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2