佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1767|回复: 19

关于PIC18 和 MRF24 之间的问题

[复制链接]
发表于 23-7-2013 04:16 PM | 显示全部楼层 |阅读模式
我先大概的介绍下我的projet吧....

1。 你要想做什么? 你的应用是什么?

   其实是很简单的就是一个检测温度的电路(已经完成)并且可以把得到的数值无线传输到一个7 segment 上。。

2。你想要拿到什么效果

   把温度数值传到PIC,PIC再发送一个数值到MRF。。然后MRF在通过MIWI或ZigBee发送到另一个MRF接收器。。MRF接收器在把接收到的数值送到另一个PIC上(一样是pic18f45k22).这个pic接收到数值在把接收到的数值显示到一个7 segment上
   最开始,我目前就想简单的给PIC一个数值,传到MRF, 然后此MRF再把接收到的数值返还回PIC,之后PIC在把数值显示到7 segment上

3. 你做了什么

   检测温度的电路+编程(已经完成)

4. 你遇到了什么问题

   对SPI不熟悉,尝试的根据datasheet进行编程,但是SO一直返还一些不知所谓的数值,或者就是没有返值。。

5. 你用什么MCU?

   我用的是PIC18F45K22.....2个都是

6. 你用什么语言? ASM /C/PICBasic/Keil?Compiler 版本?

   C , microC Pro for PIC

7. 有源码吗?

  无

8. 有电路图吗?

   具体哪一个关于PIC的? 我这PIC和 里面的线路是现成的。。(其实里面也有关于SPI的Libray但是还是不懂啊...

   这个是我目前所使用的PIC ... http://www.mikroe.com/ready/pic/

求支援。。。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-7-2013 04:28 PM | 显示全部楼层

a

  1.   while(1)
  2.   {
  3.    Chip_Select = 0; //cs=0
  4.    SPI1_Write (0x02);//mode write
  5.    SPI1_Write (0x00);//low address
  6.    SPI1_Write (0x10);//high address
  7.    SPI1_Write (0xA5);//date
  8.    Chip_Select = 1 ;//cs = 1
  9.    delay_ms(5);//等待缓冲
  10.    Chip_Select = 0;
  11.    SPI1_write (0x03);//mode read
  12.    SPI1_Write (0x00);
  13.    SPI1_Write (0x10);
  14.    Valeur_s = SPI1_Read(buffer);//read data
  15.    Chip_Select = 1;
  16.    multiplexage (Valeur_s);//显示数值
  17.   }
复制代码
大家好像都不是用这种方式写的。。。 本帖最后由 WU93 于 23-7-2013 09:34 AM 编辑

回复

使用道具 举报

发表于 23-7-2013 06:22 PM | 显示全部楼层
@fritlizt 有类似 Miwi 的project 需要,需要你的指导
哈哈


回复

使用道具 举报

 楼主| 发表于 23-7-2013 08:02 PM | 显示全部楼层
这是前置的。。。
  1. void main()
  2. {
  3.    SPI1_Init();
  4.    SPI_Set_Active(&SPI1_Read, &SPI1_Write);//active fontion read and write
  5.    Valeur_S = 0;

  6.    SSP1STAT = 0b11000000; // Datasheet P.259
  7.              // x------- SMP   Capture du bit présent à l'entrée 0 = au milieu, 1 = en fin
  8.              // -x------ CKE   Donner le sens de transition de SCK sur la sortie SDO du maître au début d'un cycle
  9.              //                0 = repos vers actif, 1 = actif vers repos
  10.              // --xxxxx- Nul pour le module SPI
  11.              // -------x BF    Donner l'état du Buffer de réception   
  12.    SSP1CON1 = 0b00100001; // Datasheet P.260-261
  13.              // x------- WCOL    Write COLlision detect bit ( Slave )
  14.              // -x------ SSPOV   SSP receive Overflow indicator bit (1 = perte de l’octet reçu) (Slave)
  15.              // --x----- SSPEN   (EN = Enable)SSP ENable (1 = module SSP en service )
  16.              // ---x---- CKP     ClocK Polarity select bit  0= niveau bas , 1= niveau haut
  17.              // ----xxxx SSPxM   Synchronous Serial Port Mode Select bits
  18.              //                  (Maître)vitesse d’horloge / (Slave)validation de l’entrée SS
  19.     INTCON = 0b11010000;// Datasheet P.116 Graphique P.113
  20.     TRISC = 0b00010000;                    
  21.     ANSELC = 0b00100000;
复制代码
但是一直试都不行,。。
回复

使用道具 举报

发表于 24-7-2013 12:11 PM | 显示全部楼层
WU93 发表于 23-7-2013 08:02 PM
这是前置的。。。但是一直试都不行,。。

ha .....你去爬贴, hin86的贴。 里面有很详细的解释。


回复

使用道具 举报

发表于 24-7-2013 12:12 PM | 显示全部楼层
^Hins86^ 发表于 23-7-2013 06:22 PM
@fritlizt 有类似 Miwi 的project 需要,需要你的指导
哈哈

来, 交给你, 看我当年的教导有没有白费。哈哈哈


回复

使用道具 举报

Follow Us
 楼主| 发表于 24-7-2013 12:55 PM | 显示全部楼层
2位大大一起来吧。。我能接受的。。
给我点前进的提示吧。。。我现在困在SPI这不能自拔了。。。 本帖最后由 WU93 于 24-7-2013 07:08 AM 编辑

回复

使用道具 举报

 楼主| 发表于 24-7-2013 02:42 PM | 显示全部楼层
hins86大大的帖子我看了。。但是关于SPI前置大家都只是简短的
  1. 27.        // Set the SPI module

  2. 28.        #if defined(HARDWARE_SPI)

  3. 29.            SSPSTAT = 0xC0;

  4. 30.            SSPCON1 = 0x20;

  5. 31.        #endif

复制代码
就好了,我也有根据datasheet写这个,但是还有用不了。。
回复

使用道具 举报


ADVERTISEMENT

发表于 24-7-2013 10:29 PM | 显示全部楼层
我的project 好像没有写到SPI 的东西,好像都是用miwi template code 里define 的东西。你的project ,我的想法是你传一个数值去给pic,然后pic 直接output给mrf24,然后mrf24直接传送你的数值给接受的mrf24,然后再传给pic,pic 就根据收到的数值,根据 你预先设定的output 给7 segment led. pic default 的format 好像是hexadecimal,所以建议你的数值是hexadecima的。
回复

使用道具 举报

发表于 24-7-2013 10:38 PM | 显示全部楼层
12.jpg      
这是我的concept,比较low level 的programming concept
不知道能不能work....嘿嘿
回复

使用道具 举报

发表于 24-7-2013 10:42 PM | 显示全部楼层
还有一点是我用的是c18 programming language ,好像跟你的mikroC 有一点不同,可能是一些define 的term 不同。
我不知道对不对,如果给错info,请版主来改正
回复

使用道具 举报

 楼主| 发表于 25-7-2013 02:09 PM | 显示全部楼层
谢谢 hins86前辈的建议
其实我最开始的concept就是先一点一点的解决问题。。。先弄简单PIC 和 MRF之间的SPI互动,在弄难度高的miwi协议栈。。。。
问题:PIC 和 MRF之间不能互相传输么。。只能利用miwi进行一个PIC+MRF 负责传输,另一个MRF+PIC负责接收么。。
      MRF中应该有自动返还数值的应答机制吧。。。
      如果我先进行miwi的programming,我可以参照前辈的那个帖子里关于miwi的设定么
回复

使用道具 举报

发表于 25-7-2013 02:57 PM | 显示全部楼层
WU93 发表于 25-7-2013 02:09 PM
谢谢 hins86前辈的建议
其实我最开始的concept就是先一点一点的解决问题。。。先弄简单PIC 和 MRF之间的SP ...

我以前用的是microchip提供的 stack
然后修改在我的controller里面run.
你可以试试看。
用c18是因为microchip stack是给c18的。 为了方便, 有几shortcut 我就几shortcut....


回复

使用道具 举报

 楼主| 发表于 25-7-2013 03:31 PM | 显示全部楼层
谢谢大大的建议

可关于SPI的呢。。我现在要做些什么呢。。关于PIC 和 MRF之间的SPI互动。。我想先把它完成。。
还有关于那个stack...我是2个pic都要写上这些define么。。。还是只要第一个啊(感觉这个问题有点傻)。
关于SPI的那一段code能给我一些指导吗。。我感觉我就是按照datasheet里面写的。。为什么还是不行呢。
  1.   SSPSTAT = 0xC0;
  2.   SSPCON1 = 0x20;
复制代码
这个前置我也是按照一样的啊 本帖最后由 WU93 于 25-7-2013 08:32 AM 编辑

回复

使用道具 举报

发表于 25-7-2013 06:44 PM | 显示全部楼层
WU93 发表于 25-7-2013 03:31 PM
谢谢大大的建议

可关于SPI的呢。。我现在要做些什么呢。。关于PIC 和 MRF之间的SPI互动。。我想先把它完 ...

就像我跟你讲的 , 那个stack, example基本上给完source code,连spi 都帮你设定好了。PIC 和 MRF之间的SPI互动基本上都已经完成。
你需要的是, 根据你自己的design,来modify那个source code.
比如说 example 用pic18f4620, spi1,  你用18f4622, spi2。 那你就直接换spi1-> spi2.
一些controller相关的configuration,即可。






回复

使用道具 举报

 楼主| 发表于 26-7-2013 01:14 PM | 显示全部楼层
请问下这个hardware profile.c在哪里可以找到。。在系统文件里面么。。我什么都没找到啊
还有将那些configure要写在pic上还是另外的文件呢。。。

还有我明天就开始放假了...谢谢大大这几天善意的帮忙。。。大概一个月后才能回来哈 本帖最后由 WU93 于 26-7-2013 06:55 AM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 26-7-2013 02:59 PM | 显示全部楼层
用MicroC + MiWi 会有困难吧。。 除非, MicroC 有提供MiWi stack。。。
回复

使用道具 举报

发表于 29-7-2013 10:37 PM | 显示全部楼层
WU93 发表于 26-7-2013 01:14 PM
请问下这个hardware profile.c在哪里可以找到。。在系统文件里面么。。我什么都没找到啊
还有将那 ...

放假不用做project?
回复

使用道具 举报

 楼主| 发表于 29-8-2013 03:38 PM | 显示全部楼层
请问下这个hardware profile.c在哪里可以找到。。在系统文件里面么。。我什么都没找到啊

放假回来了。。。。
回复

使用道具 举报

发表于 1-10-2013 09:55 PM | 显示全部楼层
WU93 发表于 29-8-2013 03:38 PM
请问下这个hardware profile.c在哪里可以找到。。在系统文件里面么。。我什么都没找到啊

放假回来了。。 ...

在microchip miwi stack 里面.
你search *.c. 一定会看到。
做到怎么样了。。。。。最新的stack code看起来比较简洁。


回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 15-2-2025 12:52 PM , Processed in 0.111224 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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