[Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/diku/mcs51/apps/SerialTest2
HPLUART.nc, NONE, 1.1 Makefile, NONE, 1.1 SerialTest2.nc, NONE,
1.1 SerialTest2M.nc, NONE, 1.1 helpfunctions.h, NONE, 1.1
Martin Leopold
mleopold at users.sourceforge.net
Fri Apr 7 05:49:58 PDT 2006
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/diku/mcs51/tos/system Main.nc, NONE, 1.1
- Next message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/diku/mcs51/apps/BlinkTimer
BlinkTimer.nc, NONE, 1.1 BlinkTimerM.nc, NONE, 1.1 Makefile,
NONE, 1.1 SingleTimer.nc, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-1.x/contrib/diku/mcs51/apps/SerialTest2
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20038/apps/SerialTest2
Added Files:
HPLUART.nc Makefile SerialTest2.nc SerialTest2M.nc
helpfunctions.h
Log Message:
A first go at an mcs51 port
--- NEW FILE: HPLUART.nc ---
// $Id: HPLUART.nc,v 1.1 2006/04/07 12:49:54 mleopold Exp $
/* tab:4
* "Copyright (c) 2000-2003 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
* Copyright (c) 2002-2003 Intel Corporation
* All rights reserved.
*
* This file is distributed under the terms in the attached INTEL-LICENSE
* file. If you do not find these files, copies can be found by writing to
* Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,
* 94704. Attention: Intel License Inquiry.
*/
/*
* Authors: Jason Hill, David Gay, Philip Levis
* Date last modified: 6/25/02
*
*
*/
/**
* The byte-level interface to the UART, which can send and receive
* simultaneously.
*
* <p> This interface, as it directly abstracts hardware, follows the
* hardware interface convention of not maintaining state. Therefore,
* some conditions that could be understood by a higher layer to be
* errors execute properly; for example, one can call
* <code>txBit</code> when in receive mode. A higher level interface
* must provide the checks for conditions such as this.
*
* @author Jason Hill
* @author David Gay
* @author Philip Levis
*/
interface HPLUART {
/**
* Initialize the UART.
*
* @return SUCCESS always.
*/
async command result_t init();
/**
* Turn off the UART
*
* @return SUCCESS always
*/
async command result_t stop();
async command result_t setRate(int rate);
/**
* Send one byte of data. There should only one outstanding send at
* any time; one must wait for the <code>putDone</code> event before
* calling <code>put</code> or <code>put2</code> again.
*
* @return SUCCESS always.
*/
async command result_t put(uint8_t data);
/**
* Send more than one byte of data. ...
*/
async command result_t put2(uint8_t *start, uint8_t *end);
/**
* A byte of data has been received.
*
* @return SUCCESS always.
*/
async event result_t get(uint8_t data);
/**
* The previous call to <code>put</code> has completed; another byte
* may now be sent.
*
* @return SUCCESS always.
*/
async event result_t putDone();
}
--- NEW FILE: Makefile ---
COMPONENT=SerialTest2
PFLAGS=-I%T/lib/Counters
ifdef IM_SENDER
PFLAGS += "-DIM_SENDER"
endif
include ../Makerules
--- NEW FILE: SerialTest2.nc ---
/*
*/
configuration SerialTest2 {
}
implementation {
components Main, SerialTest2M, HPLUARTC;
Main.StdControl -> SerialTest2M;
SerialTest2M.UART -> HPLUARTC;
}
--- NEW FILE: SerialTest2M.nc ---
/*
Testing the serial connection
*/
module SerialTest2M {
provides {
interface StdControl;
}
uses {
interface HPLUART as UART;
}
}
implementation {
uint8_t mystring[37] = "\n\rBoard h4xOr3d by purps og egeskov\n\r";
/*
Helper functions
*/
int strlen(char s[]) {
int i;
i = 0;
while (s[i] != '\0')
++i;
return i;
}
/*
Interface implementation
*/
command result_t StdControl.init() {
call UART.init();
call UART.put2(&mystring[0], &mystring[strlen(mystring)]);
return SUCCESS;
}
command result_t StdControl.start() {
return SUCCESS;
}
command result_t StdControl.stop() {
return SUCCESS;
}
async event result_t UART.get(uint8_t data) {
return SUCCESS;
}
async event result_t UART.putDone() {
return SUCCESS;
}
}
--- NEW FILE: helpfunctions.h ---
/***********************************************************************
** Helper functions
***********************************************************************/
int strlen(char s[])
{
int i;
i = 0;
while (s[i] != '\0')
++i;
return i;
}
void reverse(char s[])
{
int c,i,j;
for(i=0,j = strlen(s) - 1;i<j;i++,j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void itoa (int n, char s[])
{
int i, sign;
if ((sign = n) < 0 )
n = -n;
i = 0;
do {
s[i++] = n % 10 + '0';
} while ((n /= 10) > 0);
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}
void strcpy(char *s, char *t) {
while(((*s++) = (*t++)));
}
void strcat (char s[], char t[]) {
int i, j;
i = j = 0;
while (s[i] != '\0')
i++;
while ((s[i++] = t[j++]) != '\0');
}
- Previous message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/diku/mcs51/tos/system Main.nc, NONE, 1.1
- Next message: [Tinyos-contrib-commits]
CVS: tinyos-1.x/contrib/diku/mcs51/apps/BlinkTimer
BlinkTimer.nc, NONE, 1.1 BlinkTimerM.nc, NONE, 1.1 Makefile,
NONE, 1.1 SingleTimer.nc, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-contrib-commits
mailing list