⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generator2.c

📁 MANTIS是由科罗拉多大学开发的传感器网络嵌入式操作系统。 这是mantis的0.9.5版本的源码。
💻 C
字号:
//generator.c Robert Havlik and Brianna Bethel#include <inttypes.h>#include <stdio.h>#include "config.h"#include "led.h"#include "msched.h"//#include "adc.h"#include "com.h"#include "cc1000_raw.h"//testing//#include <stdlib.h>//#include <stdarg.h>//#include <config.h>/* some defines for our hard-coded network... */#define NET_FULL_POWER      0xff//#define NET_LOCAL_ADDRESS   0x01//#define NET_FREQUENCY       0x03  //FREQ_915_430_MHZ //used to be 0x03//#define NET_REMOTE_ADDRESS  0x04//#define NET_PORT            0x02void generator();void start(void){  //flooding_init(NET_FREQUENCY);  //mos_enable_pwr_mgt();  //mos_set_addr(NET_LOCAL_ADDRESS);  //mos_set_net_power(NET_FULL_POWER);  //mos_thread_new(mos_net_daemon, 128, PRIORITY_NORMAL);  mos_thread_new(generator, 512, PRIORITY_NORMAL);}void generator(){  uint8_t value=0;  uint8_t size = 1;  uint16_t cycles=0;  uint8_t frequency = 0;  uint8_t power = 255;  uint16_t i,j;  uint16_t numsamples;   uint8_t acknowledge=0;  uint8_t again = 1;  uint8_t frequencyindex =0;  uint8_t testnumber;  uint8_t max_frequency = 30;//30;  //Packet data;  //declarations for new com layercomBuf *inpacket;comBuf outpacket;//test numbertestnumber=1;//change numsamplesnumsamples=2000;    //change frequencyfrequency=3;//change powerpower=255;//probably need to change//rf_set_power(power);//probably need to changecc1000_raw_ioctl(CC1000_TX_POWER, power); //com_mode(IFACE_RADIO, IF_LISTEN); //com_mode(IFACE_SERIAL, IF_LISTEN);outpacket.size=1;while(again==1){  //rf_set_freq(frequency); //original  cc1000_raw_ioctl(CC1000_FREQ, frequency);//will probably need to change evenutally to not use the raw    //com_ioctl(IFACE_RADIO, outpacket);  //need to figure out command to set frequency   cycles=0;  while(cycles<numsamples)    // while(1)      {     value = value + 11;     //value = 170 //10101010 use this to test for bit errors        //mos_thread_sleep(70);     for(i = 0; i<0xff; i++); //try to make pause for calculation faster     mos_led_display(value);          cycles = cycles +1;            outpacket.data[0] = value;     com_send(IFACE_RADIO, &outpacket);         }  if(testnumber==1)   {     value = 97;      for(i=0; i<100; i++)	{ 	  //mos_led_display(value);	  outpacket.size = 2;	  outpacket.data[0] = value;	  outpacket.data[1] = value;          for(i=0; i<0xf;i++);	  com_send(IFACE_RADIO, &outpacket);	  com_free_buf(&outpacket);	}   }  else if(testnumber==2)   {     //This is a change to test     frequency= frequency+1;          while(acknowledge!=255)//have not recieved anything	{	  	  value= frequency;	  outpacket.data[0] = frequency;	  	  for(i=0; i<5; i++)	    {   	      //flooding_sendto(NET_REMOTE_ADDRESS, NET_PORT, &value, 0x01);//original	      com_send(IFACE_RADIO, &outpacket);	      com_free_buf(&outpacket);//may not need this since sending the same packet	      for(j=0;j<0x1fff;j++);	      mos_led_display(value);	    }	  for(i=0;i<0x1fff;i++);//maybe shorthen this/*     /* 	  size = flooding_recv((char *)&data, NET_PORT); */	  /* 	  for(i=0; i<size; i++) *//* 	    { *//* 	      acknowledge = ((char*)&data)[i]; *//* 	    } */	  //original	  inpacket = com_recv(IFACE_RADIO);	  acknowledge = inpacket->data[0];//just make inpacket condition if this works	  mos_led_display(acknowledge);	}      cycles = 0;      acknowledge=0;	      if(frequency== max_frequency+1)	{	  //again=0;	}            //wait a sec before sending again      for(i=1;i<15;i++){	    for(j=0;j<0x1fff;j++);	    mos_led_display(5);	    for(j=0;j<0x1fff;j++);	    mos_led_display(2);      }          }      //else    //again=0;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -