while(1)
{
if(按键一按下)
{
LED灯亮
关中断
}
if(按键二按下)
{
LED灯灭
关中断
}
if(按键三按下)
{
if(灯亮)
{
开启中断
(中断的内容是让灯闪烁)
}
else{
什么也不做
}
}
}
2年没用过单片机了,只记得大概,不知道思路对不对。我最近没空,不行的话,回来我借个单片机写写试试
因为灯闪烁本来就是个循环的过程。而单片机又没有 *** 作系统,没有多线程多进程的概念,所以只能分开执行了。
int state = 0if(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全局缓存中,可以通过反射来调用此程序集,当然这样的速度稍微慢点,不过是可以接受的。
优点:可以提交到市场,对摄像头损伤小
缺点:速度稍微慢点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)