求C语言编程(3按键1灯过程):按按键1,LED常亮;按按键2,LED灭;LED亮时按按键3闪烁,LED灭时不反应

求C语言编程(3按键1灯过程):按按键1,LED常亮;按按键2,LED灭;LED亮时按按键3闪烁,LED灭时不反应,第1张

灯?什么灯?单片机?这样的话,你要给出LED的电路图出来才好

while(1)

{

if(按键一按下)

{

LED灯亮

关中断

}

if(按键二按下)

{

LED灯灭

关中断

}

if(按键三按下)

{

if(灯亮)

{

开启中断

(中断的内容是让灯闪烁)

}

else{

什么也不做

}

}

}

2年没用过单片机了,只记得大概,不知道思路对不对。我最近没空,不行的话,回来我借个单片机写写试试

因为灯闪烁本来就是个循环的过程。而单片机又没有 *** 作系统,没有多线程多进程的概念,所以只能分开执行了。

int state = 0

if(press) //if the key is pressed

{

if(state==0)

{

state = 1

LED = 1//turn on

}

else

{

state = 0

LED = 0 //turn off

}

}

现在的Windows Phone开发实在是太封闭了,很多功能都无法实现,只有三星、LG、戴尔、Nokia这些厂家能利用Native代码开发应用,目前就HTC开发了手电筒软件发布到了微软市场,但是普通开发者利用native代码就无法提交大市场,当然有很多聪明的开发者不用LED相关的API照样开发出了手电筒应用,下面来讨论几种常用方法。

一、在应用中创建了一个死循环,无限调用摄像头的Focus()方法,即自动对焦,而摄像头处于对焦状态时LED是亮着的,间接实现了手电筒功能。

优点:能发布到微软市场.

缺点:对摄像头损伤大

二、人类的脑子是无比强大的,有人发现在windows phone有一个Microsoft.Phone.Media.Extended.dll,通过他能调用手机的摄像头,通过录像让闪光灯开启。但是打开vs2010发现根本没有Microsoft.Phone.Media.Extended这个程序集。顺藤摸瓜找到了Den Delimarsky写的两篇文章Not your regular photo and video camera on Windows Phone 7和How VideoCamera/PhotoCamera content is saved on Windows Phone 7,前一篇介绍了如何使用PhotoCamera和VideoCamera进行摄像头图像实时显示,后一篇则是介绍怎么取到拍照后的数据,写得很好,通俗易懂。文章中提到:

通过反射调用摄像头比较慢而且增加多余的代码。所以我转而使用GAC程序集“GAC_Microsoft.Phone.Media.Extended_v7_0_0_0_cneutral_1.dll”,由于是托管代码,所以就不用加上WMInteropManifest.xml文件(或者<Capability Name=”ID_CAP_INTEROPSERVICES”/>)了。

并且提供了GAC Dump(可以看作Windows Phone未开放API程序集的集合)下载。不过没有详细教程,于是搜了一下实现GAC Dump的牛人Thomas Hounsell的Blog,找到了方法 Avoiding Reflection: Adding the InteropServices library to the WP7 SDK。总结起来很简单:

首先下载Hounsell那篇文章里面的7z文件。

捡自己需要的放到C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone,记得改名,把前后下划线前的内容都去掉。比如对于原生摄像头,我们需要Microsoft.Phone.Media.Extended.dll。

打开RedistList文件夹里面的FrameworkList.xml文件,记得用管理员权限。新增一个File标签(复制之前的就行),程序集名改成你刚刚加入的那个dll的,去掉publicKeyToken属性。保存。

当然还必须执行sn.exe -Vr [dll path]对DLL进行签名.这样就可以使用Microsoft.Phone.Media.Extended.dll了。

此小节大部分内容参考:http://wei.si/blog/2011/03/access-to-native-camera-apis-on-windows-phone-7

优点:对摄像头损伤小

缺点:原来是可以提交到市场,但是现在微软发现了,此类调用已经无法提交到市场了。

三、俗话说的好你有张良记,我有过墙梯,其实Microsoft.Phone.Media.Extended.dll在windows phone全局缓存中,可以通过反射来调用此程序集,当然这样的速度稍微慢点,不过是可以接受的。

优点:可以提交到市场,对摄像头损伤小

缺点:速度稍微慢点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12040975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存