佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: xin777_88

(求助)无线(Miwi)广告版

  [复制链接]
发表于 22-6-2010 08:56 AM | 显示全部楼层
回复 60# xin777_88


   
for(i=0;c!='0';i++)concept是对的。我说的0 是 0 不是'0'.
我相信你visual basic program最后有send  '0'.暂时不说这个。不是大问题。只要你的string没有'0'即可。



while(PIR1bits.RCIF==0);
这个过后的那个开关括号{}是不需要的。虽然没有问题。不过看起来怪怪。不readable.


program 次序弄好来。 尤其是indent.
参考54楼。我帮你修改过后的code


你的program加一点comments.没有的话很难明白。 好像58楼这样。


主要问题:
你知道那里出现问题吗?现在你的pc -> mcu. mcu-> pc.少了几个bytes.
到底是pc software error,还是mcu receive error,还是mcu send error还是pc receive error?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 22-6-2010 01:19 PM | 显示全部楼层
本帖最后由 xin777_88 于 22-6-2010 01:23 PM 编辑

回复 61# fritlizt
for(i=0;c!='0';i++)concept是对的。我说的0 是 0 不是'0'.我明白你的意思,问题是当我放0时电脑送不到所以我在想应该是rcreg会store last value 意思说它跳不出for loop所以我就在visual basic那里send 0, 然后在mcu coding那里 放for(i=0;c!='0';i++),只有这样写电脑才能收到。我也有尝试过放过'\0'可是也是不能。对了想问您在59 楼的"可以利用\r\n" \r\n是什么意思?


  1. for(i=0;c!='0';i++)
  2. {
  3. while(PIR1bits.RCIF==0);//等到收到data维持。
  4. c = RCREG;                    //收到的data都是存在RCREG

  5. save(i)=c;                      //把data 收在array
  6. }

  7. i--;                               //不要把0显示在电脑(可是不知道还是会显示)         
  8. for( q=0;q<=i;q++)  
  9. {
  10. sendtx(save[q]);           //把data送回电脑
  11. }           
复制代码





至于为什么会收到单数而已,我已经解决了是我的transmit coding 出现问题。

这样写才对,我之前已经颠倒了(可以到60楼看)
  1. void sendtx(unsigned char c)
  2. {
  3.         while(PIR1bits.TXIF==0); //发送完就跳出这个while loop
  4.                 TXREG=c;
  5. }
复制代码





上方就是改了transmit coding后的result。

还有一个问题就是不知道为什么我已经放 i-- 了,可是那可0还是会被发送到电脑?
回复

使用道具 举报

发表于 22-6-2010 02:26 PM | 显示全部楼层
回复 62# xin777_88


   
其实我试图引导你找出问题。在那种情况下, 你会有哪几种可能性
虽然你解决了问题,不过真正的原因不是那个。。
真正的原因是因为pic18f4520 TXIF不会即时反映TXREG的情况。请参考datasheet usart篇, transmit部分:
TXIF is also not cleared immediately upon loading TXREG, but
becomes valid in the second instruction cycle following
the load instruction. Polling TXIF immediately following a
load of TXREG will return invalid results.

所以你load txreg过后不可以直接read txif,要等一个instruction cycle.
不过你把秩序调转业可以。这样更好。

关于你的 0。那一支铅笔,一张纸。人工loop你就懂发生什么事情了。
回复

使用道具 举报

发表于 1-7-2010 11:00 PM | 显示全部楼层
以前diploma的时候senior有做过了。那时Wireless在正式demo的时候无法超作因为他们 用FM的。Freq 太过靠近手机和当天的磁场太高导致interference。。所以做wireless的应该要考虑到这一点。
回复

使用道具 举报

发表于 2-7-2010 02:37 PM | 显示全部楼层
回复 64# fayelife2007


   

没错。 很多都用fm。你的wireless modem.bluetooth等。
所以要做到像这类型的device,有interference也没关系。
单靠FM来modulate你的data是不行的。
使用software stack是一种选择。可能还有其他方法。就要看你用什么方法来解决这个问题。
在这方面, miwi还不错。电话在旁边还不会引起什么问题。不过我到没试过在wireless modem附近会有什么问题。两者都用2.4ghz band的frequency.
回复

使用道具 举报

发表于 2-7-2010 03:05 PM | 显示全部楼层
回复 65# fritlizt
不是我啦!已经是很久的事了。。
无法负担得起那么昂贵的project因为都是Self-funded 的。
那FM好像是800MHz多而已,很靠近手机的频率。
因为弄的时候没问题所以他们也没有多考虑这方面的事情了。
回复

使用道具 举报

Follow Us
 楼主| 发表于 4-7-2010 01:27 PM | 显示全部楼层
回复 63# fritlizt
现在我真要把全部都integrate 起来。可是在我要把binary存在rom array(program memory)时, 不懂为什么debuger 说有syntax error
  1. rom const char DECODE[][] =
  2. {
  3.         {'A',0x80, 0x88, 0x88, 0x88, 0x80, 0xFF},
  4.         {'B',0x00, 0x6E, 0x6E, 0x6E, 0x91, 0xFF},
  5.         {'C',0x00, 0x7E, 0x7E, 0x7E, 0xBD, 0xFF},
  6.         {'D',0x00, 0x7E, 0x7E, 0x7E, 0x81, 0xFF},
  7.         {'E',0x00, 0x6E, 0x6E, 0x6E, 0x6E, 0xFF},
  8.         {'F',0x00, 0x6F, 0x6F, 0x6F, 0x7F, 0xFF},
  9.         {'G',0x81, 0x7E, 0x7E, 0x76, 0xB1, 0xFF},
  10.         {'H',0x00, 0xEF, 0xEF, 0xEF, 0x00, 0xFF},
  11.         {'I',0x7E, 0x7E, 0x00, 0x7E, 0x7E, 0xFF},
  12.         {'J',0x79, 0x7E, 0x7E, 0x01, 0x7F, 0xFF}...
  13. };
复制代码



要怎样才可以把我的a to z binary data 存起来呢?由于ram 不够大,所以我的想法是把他们存在rom.
回复

使用道具 举报

发表于 4-7-2010 01:59 PM | 显示全部楼层
回复 67# xin777_88


   

error msg是什么?每一次当其他人是神。。。。。。
还有之前的问题是什么? 解决了吗?请update以后可以帮到其他人。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 4-7-2010 03:10 PM | 显示全部楼层
回复 68# fritlizt
还有之前的问题是什么? 解决了吗?请update以后可以帮到其他人。

你是指0的问题?就跟着你讲的去做啊,拿纸拿笔做人工loop咯,发现应该要i=i-2,而不是i=i-1咯。我以为这是简单问题所以没有回复。

transmitter--(wireless)-->receiver--(uart)-->display board.
现在要做的是display board 的coding把之前写的coding(上几楼)和scrolling message 的 coding 合在一起.意思是说,display board收到一个ASCII code message时,它要负责把这些ASCII code message转换成binary code. 所以我要先把A到Z的binary code存在program memory,然后在利用compare的方式把user要的 message 存在array在把他们送到dot matrix.


error msg是什么?
我没有说error msg我是说当我把一系咧binary data存在program memory时,不知道为什么debug后,说有syntax error

  1. rom const char DECODE[][] =
  2. {
  3.         {'A',0x80, 0x88, 0x88, 0x88, 0x80, 0xFF},
  4.         {'B',0x00, 0x6E, 0x6E, 0x6E, 0x91, 0xFF},
  5.         {'C',0x00, 0x7E, 0x7E, 0x7E, 0xBD, 0xFF},
  6.         {'D',0x00, 0x7E, 0x7E, 0x7E, 0x81, 0xFF},
  7.         {'E',0x00, 0x6E, 0x6E, 0x6E, 0x6E, 0xFF},
  8.         {'F',0x00, 0x6F, 0x6F, 0x6F, 0x7F, 0xFF},
  9.         {'G',0x81, 0x7E, 0x7E, 0x76, 0xB1, 0xFF},
  10.         {'H',0x00, 0xEF, 0xEF, 0xEF, 0x00, 0xFF},
  11.         {'I',0x7E, 0x7E, 0x00, 0x7E, 0x7E, 0xFF},
  12.         {'J',0x79, 0x7E, 0x7E, 0x01, 0x7F, 0xFF}
  13. };
复制代码
回复

使用道具 举报

发表于 5-7-2010 01:59 PM | 显示全部楼层
回复 69# xin777_88


   
那一行有syntax error?array那边检查看看
[][],c language不允许multidimensional with每个array有不同的size.
回复

使用道具 举报

 楼主| 发表于 3-8-2010 10:30 PM | 显示全部楼层
本帖最后由 xin777_88 于 4-8-2010 11:11 AM 编辑

回复 70# fritlizt
array 的问题我解决了。那是因为我把我的array写在void main()里面,所以有stack limit。为了不要有stack limit所以我就把它写在global,这样就有比较多space.之前我有问到要如何把3.3v变5v的问题而我有放上一个pnp transistor 的图。。。我已经尝试了,虽然没有拿到5v可是有3.84v。
我也把display board 和 wireless integrated 起来了。可是发现了一个问题,那就是当我把display board放在和transmitter  较近距离就可以做到(大约是30cm)当放到比较远就不能了(大约是396cm)。所以我开始怀疑我solder wireless module (MRF24j40MA)的方式有点问题,当我按着 wireless module 它就很stable 可以detect 到 receiver。所以我想请问你,你是怎样做它在可以stable ?



还有一个问题就是visual basic 可以不可以做到auto detect com serial 的port?
回复

使用道具 举报

发表于 23-8-2010 01:59 PM | 显示全部楼层
回复 71# xin777_88



3.84v还是有点危险。 一般是pic input high是0.7.Vcc. Vcc = 5v 0.7. Vcc = 3.7v.
3.84只是高一点罢了。你怎么用你的transistor? 可以画出来吗? resistor value?


附近有没有2.4ghz 得咚咚? 比如说bluetooth mouse, wireless router等等。 试试看其他channel.你用什么channel?
visual basic可以detect你的电脑有多少comport. 然后list出来。
回复

使用道具 举报

 楼主| 发表于 19-10-2010 08:26 AM | 显示全部楼层
fritlizt非常感谢你九个月的帮忙哦。我的fyp做到了。也可以无限的发出message。之前的问题都解决了,问题不是出在距离而是我的coding问题。在此感谢帮过我的人。谢了。
回复

使用道具 举报

发表于 19-10-2010 08:58 AM | 显示全部楼层
fritlizt非常感谢你九个月的帮忙哦。我的fyp做到了。也可以无限的发出message。之前的问题都解决了,问题不 ...
xin777_88 发表于 19-10-2010 08:26 AM

要不要分享一下你之前的问题,做一个总结, 让以后看帖的人受益?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 19-4-2024 12:09 PM , Processed in 0.064240 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表