This commit is contained in:
Mark Qvist 2014-04-27 19:32:48 +02:00
parent bd11c5ee83
commit c0b73f0155
36 changed files with 1 additions and 3067 deletions

View File

@ -1,97 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2010 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief AFSK modem hardware-specific definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#include "hw_afsk.h"
#include <net/afsk.h>
#include <cpu/irq.h>
#include <avr/io.h>
#include <avr/interrupt.h>
/*
* Here we are using only one modem. If you need to receive
* from multiple modems, you need to define an array of contexts.
*/
static Afsk *ctx;
void hw_afsk_adcInit(int ch, Afsk *_ctx)
{
ctx = _ctx;
ASSERT(ch <= 5);
AFSK_STROBE_INIT();
AFSK_STROBE_OFF();
/* Set prescaler to clk/8 (2 MHz), CTC, top = ICR1 */
TCCR1A = 0;
TCCR1B = BV(CS11) | BV(WGM13) | BV(WGM12);
/* Set max value to obtain a 9600Hz freq */
ICR1 = ((CPU_FREQ / 8) / 9600) - 1;
/* Set reference to AVCC (5V), select CH */
ADMUX = BV(REFS0) | ch;
DDRC &= ~BV(ch);
PORTC &= ~BV(ch);
DIDR0 |= BV(ch);
/* Set autotrigger on Timer1 Input capture flag */
ADCSRB = BV(ADTS2) | BV(ADTS1) | BV(ADTS0);
/* Enable ADC, autotrigger, 1MHz, IRQ enabled */
/* We are using the ADC a bit out of specifications otherwise it's not fast enough for our
* purposes */
ADCSRA = BV(ADEN) | BV(ADSC) | BV(ADATE) | BV(ADIE) | BV(ADPS2);
}
bool hw_afsk_dac_isr;
/*
* This is how you declare an ISR.
*/
DECLARE_ISR(ADC_vect)
{
TIFR1 = BV(ICF1);
afsk_adc_isr(ctx, ((int16_t)((ADC) >> 2) - 128));
if (hw_afsk_dac_isr)
PORTD = afsk_dac_isr(ctx) & 0xF0;
else
PORTD = 128;
}

View File

@ -1,110 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief AFSK modem hardware-specific definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_AFSK_H
#define HW_AFSK_H
#include "cfg/cfg_arch.h"
#include <avr/io.h>
struct Afsk;
void hw_afsk_adcInit(int ch, struct Afsk *_ctx);
void hw_afsk_dacInit(int ch, struct Afsk *_ctx);
/**
* Initialize the specified channel of the ADC for AFSK needs.
* The adc should be configured to have a continuos stream of convertions.
* For every convertion there must be an ISR that read the sample
* and call afsk_adc_isr(), passing the context and the sample.
*
* \param ch channel to be used for AFSK demodulation.
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
* passed back to afsk_adc_isr() for every convertion.
*/
/*
* This macro will be called for AFSK initialization. We could implement everything here as a macro,
* but since initialization is rather complicated we decided to split its own function. Such function
* is defined in hw_afsk.c.
* Remember: since this .c file is not created by the wizard, you must add it to your_project_name.mk.
* If you create the file using BeRTOS SDK, it will be added for you.
*/
#define AFSK_ADC_INIT(ch, ctx) hw_afsk_adcInit(ch, ctx)
/*
* Activate strobe pin. We use it for debugging purposes. If you don't use it, simply
* leave empty the following macros
*/
#define AFSK_STROBE_INIT() do { DDRB |= BV(5); } while (0)
/*
* Set the pin high. This macro is called at the beginning of the interrupt routine
*/
#define AFSK_STROBE_ON() do { PORTB |= BV(5); } while (0)
/*
* Set the pin low. This macro is called at the end of the interrupt routine
*/
#define AFSK_STROBE_OFF() do { PORTB &= ~BV(5); } while (0)
/**
* Initialize the specified channel of the DAC for AFSK needs.
* The DAC has to be configured in order to call an ISR for every sample sent.
* The DAC doesn't have to start the IRQ immediatly but have to wait
* the AFSK driver to call AFSK_DAC_IRQ_START().
* The ISR must then call afsk_dac_isr() passing the AFSK context.
* \param ch DAC channel to be used for AFSK modulation.
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
* passed back to afsk_dac_isr() for every convertion.
*/
#define AFSK_DAC_INIT(ch, ctx) do { (void)ch, (void)ctx; DDRD |= 0xF0; DDRB |= BV(3); } while (0)
/**
* Start DAC convertions on channel \a ch.
* \param ch DAC channel.
*/
#define AFSK_DAC_IRQ_START(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB |= BV(3); hw_afsk_dac_isr = true; } while (0)
/**
* Stop DAC convertions on channel \a ch.
* \param ch DAC channel.
*/
#define AFSK_DAC_IRQ_STOP(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB &= ~BV(3); hw_afsk_dac_isr = false; } while (0)
#endif /* HW_AFSK_H */

View File

@ -1,51 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000 Bernie Innocenti
* All Rights Reserved.
* -->
*
* \brief Buzzer hardware-specific definitions
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_BUZZER_H
#define HW_BUZZER_H
#warning TODO:This is an example implementation, you must implement it!
#define BUZZER_BIT 1
#define IS_BUZZER_ON 0
#define BUZZER_HW_INIT do { /* Implement me! */ } while (0)
#define BUZZER_ON do { /* Implement me! */ } while (0)
#define BUZZER_OFF do { /* Implement me! */ } while (0)
#endif /* HW_BUZZER_H */

View File

@ -1,125 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Dataflash HW control routines.
*
* \author Francesco Sacchi <batt@develer.com>
*/
#include "hw/hw_dataflash.h"
#include <cfg/compiler.h>
#include <cfg/module.h>
#include <cfg/macros.h>
#warning TODO:This is an example implementation, you must implement it!
MOD_DEFINE(hw_dataflash);
/**
* Data flash init function.
*
* This function provide to initialize all that
* needs to drive a dataflash memory.
* Generaly needs to init pins to drive a CS line
* and reset line.
*/
void dataflash_hw_init(void)
{
//Disable CS line (remove if not needed)
dataflash_hw_setCS(false);
/*
* Put here your code!
*
* Note:
* - if you drive manualy CS line, here init a CS pin
* - if you use a dedicated reset line, here init a reset pin
*/
MOD_INIT(hw_dataflash);
}
/**
* Chip Select drive.
*
* This function enable or disable a CS line.
* You must implement this function comply to a dataflash
* memory datasheet to allow the drive to enable a memory
* when \p enable flag is true, and disable it when is false.
*/
void dataflash_hw_setCS(bool enable)
{
if (enable)
{
/*
* Put here your code to enable
* dataflash memory
*/
}
else
{
/*
* Put here your code to disable
* dataflash memory
*/
}
}
/**
* Reset data flash memory.
*
* This function provide to send reset signal to
* dataflash memory. You must impement it comly to a dataflash
* memory datasheet to allow the drive to set a reset pin
* when \p enable flag is true, and disable it when is false.
*
*/
void dataflash_hw_setReset(bool enable)
{
if (enable)
{
/*
* Put here your code to set reset of
* dataflash memory
*/
}
else
{
/*
* Put here your code to clear reset of
* dataflash memory
*/
}
}

View File

@ -1,47 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Dataflash HW control routines (interface).
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_DATAFLASH_H
#define HW_DATAFLASH_H
#include <cfg/compiler.h>
void dataflash_hw_init(void);
void dataflash_hw_setCS(bool enable);
void dataflash_hw_setReset(bool enable);
#endif /* HW_DATAFLASH_H */

View File

@ -1,84 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief DC motor hardware-specific definitions
*
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_DC_MOTOR_H
#define HW_DC_MOTOR_H
typedef enum MotorDCMap
{
/* Put here motor dc declaration */
MOTOR_DC_CNT
} MotorDCMap;
/*
* Init all pin and device to manage dc motor.
*/
#define MOTOR_DC_INIT() \
do { \
/* Implement me! */ \
} while (0)
/*
* Enable DC motor.
*/
#define DC_MOTOR_ENABLE(dev) \
do { \
/* Implement me! */ \
} while (0)
/*
* Disable DC motor.
*/
#define DC_MOTOR_DISABLE(dev) \
do { \
/* Implement me! */ \
} while (0)
/*
* Set direction for DC motor.
*/
#define DC_MOTOR_SET_DIR(dev, dir) \
do { \
/* Implement me! */ \
} while (0)
#endif /* HW_DC_MOTOR_H */

View File

@ -1,64 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief FT245RL USB interface hardware-specific definitions
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_FT245RL_H
#define HW_FT245RL_H
#warning TODO:This is an example implementation, you must implement it!
#define FT245RL_DATA_IN() /* Implement me! */
#define FT245RL_DATA_OUT() /* Implement me! */
#define WR_HI /* Implement me! */
#define WR_LO /* Implement me! */
#define RD_HI /* Implement me! */
#define RD_LO /* Implement me! */
#define FT245RL_INIT() \
do \
{ \
/* Implement me! */ \
} while(0)
#define FT245RL_DATA_RDY() (/* Implement me! */ false)
#define FT245RL_GETDATA() ({/* Implement me! */ (0);})
#define FT245RL_TX_ALLOWED() (/* Implement me! */ false)
#define FT245RL_SETDATA(data) do {/* Implement me! */ (void)((data)); } while(0)
#endif /* HW_FT245RL_H */

View File

@ -1,127 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
* All Rights Reserved.
* -->
*
* \brief Macro for I2C bitbang operation.
*
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_I2C_BITBANG_H
#define HW_I2C_BITBANG_H
#warning TODO:This is an example implementation, you must implement it!
#define SDA_HI do { /* Implement me:Set SDA High by setting SDA pin as input */ } while (0)
#define SDA_LO do { /* Implement me:Set SDA Low by setting SDA pin as open collector output */ } while (0)
#define SCL_HI do { /* Implement me:Set SCL High by setting SCL pin as input */ } while (0)
#define SCL_LO do { /* Implement me:Set SCL Low by setting SCL pin as open collector output */ } while (0)
#define SCL_IN (true) /* Implement me: read SDA pin state */
#define SDA_IN (true) /* Implement me: read SCL pin state */
/**
* This macro should set SDA and SCL lines as input.
*/
#define I2C_BITBANG_HW_INIT do { /* Implement me! */ } while (0)
/**
* Half bit delay routine used to generate the correct timings.
*/
#define I2C_HALFBIT_DELAY() do { /* Implement me! */ } while (0)
/*
* New api
*/
#include <cfg/compiler.h>
INLINE void i2c_sdaHi(int dev)
{
(void)(dev);
/* Implement me:Set SDA High by setting SDA pin as input */
}
INLINE void i2c_sdaLo(int dev)
{
(void)(dev);
/* Implement me:Set SDA Low by setting SDA pin as open collector output */
}
INLINE void i2c_sclHi(int dev)
{
(void)(dev);
/* Implement me:Set SCL High by setting SCL pin as input */
}
INLINE void i2c_sclLo(int dev)
{
(void)(dev);
/* Implement me:Set SCL Low by setting SCL pin as open collector output */
}
INLINE bool i2c_sdaIn(int dev)
{
(void)(dev);
/* Implement me: read SDA pin state */
return true;
}
INLINE bool i2c_sclIn(int dev)
{
(void)(dev);
/* Implement me: read SCL pin state */
return true;
}
/**
* Half bit delay routine used to generate the correct timings.
*/
INLINE void i2c_halfbitDelay(int dev)
{
(void)(dev);
/* Implement me! */
}
/**
* This macro should set SDA and SCL lines as input.
*/
INLINE void i2c_bitbangInit(int dev)
{
(void)(dev);
/* Implement me! */
}
#endif /* HW_I2C_BITBANG_H */

View File

@ -1,71 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000 Bernie Innocenti
* All Rights Reserved.
* -->
*
* \brief Keyboard hardware-specific definitions
*
*
* \author Francesco Sacchi <batt@develer.com>
* \author Stefano Fedrigo <a@develer.com>
*/
#ifndef HW_KBD_H
#define HW_KBD_H
#include "hw/kbd_map.h"
#include <cfg/macros.h>
#warning TODO:This is an example implementation, you must implement it!
#define K_RPT_MASK (K_UP | K_DOWN | K_OK | K_CANCEL)
#define KBD_HW_INIT \
do { \
/* Put here code to init hw */ \
} while (0)
EXTERN_C int emul_kbdReadCols(void);
/**
* Read the keyboard ports and return the mask of
* depressed keys.
*/
INLINE keymask_t kbd_readkeys(void)
{
/* Implement me! */
//Only for test remove when implement this function
return 0;
}
#endif /* HW_KBD_H */

View File

@ -1,155 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2006, 2010 Develer S.r.l. (http://www.develer.com/)
* Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
*
* -->
*
* \brief Displaytech 32122A LCD driver
*
* \author Bernie Innocenti <bernie@codewiz.org>
* \author Stefano Fedrigo <aleph@develer.com>
*
*/
#ifndef HW_LCD_32122A_H
#define HW_LCD_32122A_H
#include <cpu/types.h>
#include <cpu/irq.h>
#warning TODO:This is an example implementation, you must implement it!
/**
* Predefined LCD PWM contrast values
*/
#define LCD_DEF_PWM 145
#define LCD_MAX_PWM 505
#define LCD_MIN_PWM 130
#define LCD_PWM_CH 0
/**
* \name LCD I/O pins/ports
* @{
*/
#define LCD_RS /* Implement me! */
#define LCD_RW /* Implement me! */
#define LCD_PE_E1 /* Implement me! */
#define LCD_PE_E2 /* Implement me! */
#define LCD_DB0 /* Implement me! */
#define LCD_DB1 /* Implement me! */
#define LCD_DB2 /* Implement me! */
#define LCD_DB3 /* Implement me! */
#define LCD_DB4 /* Implement me! */
#define LCD_DB5 /* Implement me! */
#define LCD_DB6 /* Implement me! */
#define LCD_DB7 /* Implement me! */
#define LCD_PF_DB0 /* Implment me! */
/*@}*/
/**
* \name LCD bus control macros
* @{
*/
#define LCD_CLR_A0 do { /* Implement me! */ } while (0)
#define LCD_SET_A0 do { /* Implement me! */ } while (0)
#define LCD_CLR_RD do { /* Implement me! */ } while (0)
#define LCD_SET_RD do { /* Implement me! */ } while (0)
#define LCD_CLR_E1 do { /* Implement me! */ } while (0)
#define LCD_SET_E1 do { /* Implement me! */ } while (0)
#define LCD_CLR_E2 do { /* Implement me! */ } while (0)
#define LCD_SET_E2 do { /* Implement me! */ } while (0)
#define LCD_SET_E(x) do { (void)x; /* Implement me! */ } while (0)
#define LCD_CLR_E(x) do { (void)x; /* Implement me! */ } while (0)
/*@}*/
/**
* \name Chip select bits for LCD_SET_E()
* @{
*/
#define LCDF_E1 ( 0/* Implement me! */)
#define LCDF_E2 ( 0/* Implement me! */)
/*@}*/
/** Read from the LCD data bus (DB[0-7]) */
#define LCD_WRITE(x) ((void)x)/* Implement me! */
/** Write to the LCD data bus (DB[0-7]) */
#define LCD_READ (0 /* Implement me! */ )
/** Set data bus direction to output (write to display) */
#define LCD_DB_OUT /* Implement me! */
/** Set data bus direction to input (read from display) */
#define LCD_DB_IN /* Implement me! */
/** Delay for write (Enable pulse width, 220ns) */
#define LCD_DELAY_WRITE \
do { \
NOP; \
NOP; \
NOP; \
NOP; \
NOP; \
} while (0)
/** Delay for read (Data ouput delay time, 120ns) */
#define LCD_DELAY_READ \
do { \
NOP; \
NOP; \
NOP; \
NOP; \
} while (0)
#define LCD_32122_RESET() do { /* Implement me! */ } while (0)
INLINE void lcd_32122a_hw_bus_init(void)
{
cpu_flags_t flags;
IRQ_SAVE_DISABLE(flags);
/*
* Here set bus pin!
* to init a lcd device.
*
*/
/*
* Data bus is in output state most of the time:
* LCD r/w functions assume it is left in output state
*/
LCD_DB_OUT;
IRQ_RESTORE(flags);
}
#endif /* HW_LCD_32122A_H */

View File

@ -1,157 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2008 Develer S.r.l. (http://www.develer.com/)
* Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
*
* -->
*
* \brief LCD low-level hardware macros
*
* \author Bernie Innocenti <bernie@codewiz.org>
* \author Stefano Fedrigo <aleph@develer.com>
*
*/
#ifndef HW_LCD_HD44_H
#define HW_LCD_HD44_H
#include "cfg/cfg_lcd_hd44.h" /* CONFIG_LCD_4BIT */
#include <cpu/types.h>
#include <cpu/irq.h>
#warning TODO:This is an example implementation, you must implement it!
/**
* \name LCD I/O pins/ports
* @{
*/
#define LCD_RS /* Implement me! */
#define LCD_RW /* Implement me! */
#define LCD_E /* Implement me! */
#define LCD_DB0 /* Implement me! */
#define LCD_DB1 /* Implement me! */
#define LCD_DB2 /* Implement me! */
#define LCD_DB3 /* Implement me! */
#define LCD_DB4 /* Implement me! */
#define LCD_DB5 /* Implement me! */
#define LCD_DB6 /* Implement me! */
#define LCD_DB7 /* Implement me! */
/*@}*/
/**
* \name DB high nibble (DB[4-7])
* @{
*/
#if CONFIG_LCD_4BIT
#define LCD_MASK (LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4)
#define LCD_SHIFT 4
#else
#define LCD_MASK (uint8_t)0xff
#define LCD_SHIFT 0
#endif
/*@}*/
/**
* \name LCD bus control macros
* @{
*/
#define LCD_CLR_RS /* Implement me! */
#define LCD_SET_RS /* Implement me! */
#define LCD_CLR_RD /* Implement me! */
#define LCD_SET_RD /* Implement me! */
#define LCD_CLR_E /* Implement me! */
#define LCD_SET_E /* Implement me! */
/* Enter command mode */
#define LCD_SET_COMMAND() /* Implement me! */
/* Enter data mode */
#define LCD_SET_DATA() /* Implement me! */
#if CONFIG_LCD_4BIT
#define LCD_WRITE_H(x) ((void)x)/* Implement me! */
#define LCD_WRITE_L(x) ((void)x)/* Implement me! */
#define LCD_READ_H ( 0 /* Implement me! */ )
#define LCD_READ_L ( 0 /* Implement me! */ )
#else
#define LCD_WRITE(x) ((void)x)/* Implement me! */
#define LCD_READ (0 /* Implement me! */ )
#endif
/*@}*/
/** Set data bus direction to output (write to display) */
#define LCD_DB_OUT /* Implement me! */
/** Set data bus direction to input (read from display) */
#define LCD_DB_IN /* Implement me! */
/** Delay for write (Enable pulse width, 220ns) */
#define LCD_DELAY_WRITE \
do { \
NOP; \
NOP; \
NOP; \
NOP; \
NOP; \
} while (0)
/** Delay for read (Data ouput delay time, 120ns) */
#define LCD_DELAY_READ \
do { \
NOP; \
NOP; \
NOP; \
NOP; \
} while (0)
INLINE void lcd_hd44_hw_bus_init(void)
{
cpu_flags_t flags;
IRQ_SAVE_DISABLE(flags);
/*
* Here set bus pin!
* to init a lcd device.
*
*/
/*
* Data bus is in output state most of the time:
* LCD r/w functions assume it is left in output state
*/
LCD_DB_OUT;
IRQ_RESTORE(flags);
}
#endif /* HW_LCD_HD44_H */

View File

@ -1,47 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2010 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Led on/off macros.
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_LED_H
#define HW_LED_H
#include <avr/io.h>
#define LED_ON() PORTB |= BV(5)
#define LED_OFF() PORTB &= ~BV(5)
#define LED_INIT() DDRB |= BV(5)
#endif /* HW_LED_H */

View File

@ -1,49 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2009 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Hardware macro definition.
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_LM75_H
#define HW_LM75_H
#warning TODO:This is an example implentation, you must implement it!
#define LM75_HW_INIT() \
do { \
/* Pin init */\
} while (0)
#endif /* HW_LM75_H */

View File

@ -1,52 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006 Develer S.r.l. (http://www.develer.com/)
* -->
*
* \brief MCP41 hardware-specific definitions
*
* \author Francesco Sacchi <batt@develer.com>
*/
#include "hw/hw_mcp41.h"
#include <cfg/macros.h>
#include <cfg/compiler.h>
#warning TODO:This is an example implementation, you must implement it!
const uint16_t mcp41_ports[MCP41_CNT] =
{
0, /* add here mcp41 ports */
};
const uint8_t mcp41_pins [MCP41_CNT] =
{
0, /* add here mcp41 ports */
};

View File

@ -1,74 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2005 Develer S.r.l. (http://www.develer.com/)
* -->
*
* \brief MCP41 hardware-specific definitions
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_MCP41_H
#define HW_MCP41_H
#include "hw/mcp41_map.h"
#include <cfg/compiler.h>
#warning TODO:This is an example implementation, you must implement it!
INLINE void SET_MCP41_DDR(Mcp41Dev dev)
{
/* Implement me! */
//Warning: this funtions is like avr target name,
//fix it to comply for all target.
//Only for test remove when implement this function
(void)dev;
}
INLINE void MCP41_ON(Mcp41Dev i)
{
/* Implement me! */
//Only for test remove when implement this function
(void)i;
}
INLINE void MCP41_OFF(Mcp41Dev i)
{
/* Implement me! */
//Only for test remove when implement this function
(void)i;
}
#endif /* HW_MCP41_H */

View File

@ -1,45 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief NTC hardware-specific definition
*
* \author Lorenzo Berni <duplo@develer.com>
*
*/
#include <drv/ntc.h>
#include "hw/ntc_map.h"
const res_t NTC_RSER[NTC_CNT];
const res_t NTC_RPAR[NTC_CNT];
const amp_t NTC_AMP[NTC_CNT];
const NtcHwInfo* NTC_INFO[NTC_CNT];

View File

@ -1,135 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief NTC hardware-specific definition
*
* \author Francesco Sacchi <batt@develer.com>
*
* A NTC acts as a variable resistor, whose resistance changes as a
* function of the temperature it measures. To sample it correctly, it is
* usually parallelized and serialized with two fixed resistor. The following diagram shows
* what is the exact disposition of the components, as handled by this
* library:
*
*<pre>
* o Vref
* |
* | o Vref
* | |
* ----- |
* | | ---------
* | Rser| | |
* | | | |
* ----- ----- | ADC |
* | Vp | | | |
* -----------|------| Amp |-------------| |
* | | | | Vadc | |
* ----- ----- ----- ---------
* | | | |
* | NTC | | Rpar|
* | | | |
* ----- -----
* | |
* | |
* ----- -----
* --- ---
*</pre>
* Amp is an amplifier that amplify of AMP times the signal.
* If we indicate Rp as the parallel of NTC with Rpar, ADCBITS as the bits of the ad converter
* and ADCVAL as the result from the adc convertion (Not Vadc but just the value read
* from the adc register), after various calculation, the expression of Rp is:
*
*<pre>
*
* ADCVAL * Rser
* Rp = ------------------------
* ADCBITS
* 2 * AMP - ADCVAL
*</pre>
*
* And after that NTC obvisiously is:
*<pre>
* Rpar * Rp
* NTC = ----------
* Rpar - Rp
*</pre>
*
*
* The function ntc_hw_read() compute the resistence using these formulas above.
*/
#ifndef HW_NTC_H
#define HW_NTC_H
#include "ntc_map.h"
#include <cfg/debug.h>
#include <drv/ntc.h>
#include <drv/adc.h>
#warning TODO:This is an example implementation, you must implement it!
extern const res_t NTC_RSER[NTC_CNT];
extern const res_t NTC_RPAR[NTC_CNT];
extern const amp_t NTC_AMP[NTC_CNT];
extern const NtcHwInfo* NTC_INFO[NTC_CNT];
/*!
* Read the resistence of ntc device \a dev.
* Return the result in res_t type.
*/
INLINE res_t ntc_hw_read(NtcDev dev)
{
ASSERT(dev < NTC_CNT);
// See above for formula explanation.
adcread_t adcval = adc_read((uint16_t)dev);
float rp = (adcval * NTC_RSER[dev] ) / ((1 << adc_bits()) * NTC_AMP[dev] - adcval);
//kprintf("Rp[%f], Rntc[%f]\n", rp/100, ((NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp)) / 100.0);
return ( (NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp) );
}
/*!
* Return the info (aka the table) associated with ntc device \a dev.
*/
INLINE const NtcHwInfo* ntc_hw_getInfo(NtcDev dev)
{
return NTC_INFO[dev];
}
#define NTC_HW_INIT do { /* Implement me! */ } while(0)
#endif /* HW_NTC_H */

View File

@ -1,45 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Phase control hardware-specific definitions
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_PHASE_H
#define HW_PHASE_H
#include "hw/hw_phase.h"
#warning TODO:This is an example implementation, you must implement it!
#endif /* HW_PHASE_H */

View File

@ -1,79 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
*
* -->
*
* \brief Phase control hardware-specific definitions
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_PHASE_H
#define HW_PHASE_H
#include "hw/phase_map.h"
#include <cfg/compiler.h>
#warning TODO:This is an example implementation, you must implement it!
#define PHASE_HW_INIT do { /* Implement me! */ }while (0)
INLINE void TRIAC_OFF(TriacDev i)
{
/* Implement me! */
//Only for test remove when implement this function
(void)i;
}
INLINE void TRIAC_ON(TriacDev i)
{
/* Implement me! */
//Only for test remove when implement this function
(void)i;
}
INLINE void SET_TRIAC_DDR(TriacDev i)
{
/* Implement me! */
//Only for test remove when implement this function
(void)i;
}
void zerocross_isr(void);
#define DEFINE_ZEROCROSS_ISR() void zerocross_isr(void)
#endif /* HW_PHASE_H */

View File

@ -1,78 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2010 Develer S.r.l. (http://www.develer.com/)
*
* -->
*
* \brief LM3S1986: OLED-RIT-128x96 (P14201) low-level hardware macros
*
* \author Andrea Righi <arighi@develer.com>
*/
#ifndef HW_RIT128x96_H
#define HW_RIT128x96_H
#include "cfg/macros.h" /* BV() */
#include "cfg/debug.h"
#include <cpu/attr.h>
#include <cpu/irq.h>
#include <cpu/types.h>
/**
* \name LCD I/O pins/ports
* @{
*/
/* OLED Data/Command control pin */
#define GPIO_OLEDDC_PIN 0 /* Implement me! */
/* OLED enable pin */
#define GPIO_OLEDEN_PIN 0 /* Implement me! */
/*@}*/
/**
* \name LCD bus control macros
* @{
*/
/* Enter command mode */
#define LCD_SET_COMMAND() /* Implement me! */
/* Enter data mode */
#define LCD_SET_DATA() /* Implement me! */
/* Send data to the display */
#define LCD_WRITE(x) ((void)x)/* Implement me! */
/*@}*/
INLINE void lcd_rit128x96_hw_bus_init(void)
{
/* Implement me! */
}
#endif /* HW_RIT128x96_H */

View File

@ -1,52 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2009 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief SD driver hardware-specific definitions.
*
*
* \author Luca Ottaviano <lottaviano@develer.com>
*/
#ifndef HW_SD_H
#define HW_SD_H
#warning FIXME: This is an example implementation, you must implement it
#define SD_CS_INIT() do { /* implement me */} while(0)
#define SD_CS_ON() do { /* implement me */} while(0)
#define SD_CS_OFF() do { /* implement me */} while(0)
#define SD_PIN_INIT() do { /* implement me */} while(0)
#define SD_CARD_PRESENT() true /* implement me */
#define SD_WRITE_PROTECT() false /* implement me */
#endif /* HW_SD_H */

View File

@ -1,52 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Serial hardware-specific definitions
*
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_SER_H
#define HW_SER_H
#include "cfg/cfg_ser.h"
#if CONFIG_SER_STROBE
#warning FIXME: this is an example implementation, you must implement it
#define SER_STROBE_INIT do { /* implement me */ } while (0)
#define SER_STROBE_ON do { /* implement me */ } while (0)
#define SER_STROBE_OFF do { /* implement me */ } while (0)
#endif
#endif /* HW_SER_H */

View File

@ -1,108 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2006, 2008, 2009 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
* All Rights Reserved.
* -->
*
* \brief Macro for HW_SIPO_H
*
*
*
* \author Andrea Grandi <andrea@develer.com>
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_SIPO_H
#define HW_SIPO_H
/**
* Map sipo connection on board.
*/
typedef enum SipoMap
{
SIPO_CNT
} SipoMap;
/**
* Define generic macro to set pins logic level
*/
#define SIPO_SET_LEVEL_LOW(dev) do { /* Implement me! */ } while (0)
#define SIPO_SET_LEVEL_HIGH(dev) do { /* Implement me! */ } while (0)
/**
* Generate one low pulse on select line.
*/
#define PULSE_LOW(dev) do { /* Implement me! */ } while (0)
/**
* Generate one hight pulse on select line.
*/
#define PULSE_HIGH(dev) do { /* Implement me! */ } while (0)
/**
* Define the procedure to drive serial input in sipo device (SI).
*/
#define SIPO_SI_HIGH() do { /* Implement me! */ } while (0)
#define SIPO_SI_LOW() do { /* Implement me! */ } while (0)
/**
* Drive clock to shift SI data into latch.
*/
#define SIPO_SI_CLOCK(clk_pol) \
do { \
(void)clk_pol; \
/* Implement me! */ \
} while (0)
/**
* Do everything needed in order to load dato into sipo.
*/
#define SIPO_LOAD(device, load_pol) do { /* Implement me! */ } while (0)
/**
* Enable the shift register output.
*/
#define SIPO_ENABLE() do { /* Implement me! */ } while (0)
/**
* Set polarity for Load, Clk, SI signals.
*/
#define SIPO_SET_LD_LEVEL(device, load_pol) do { /* Implement me! */ } while (0)
#define SIPO_SET_CLK_LEVEL(clock_pol) do { /* Implement me! */ } while (0)
#define SIPO_SET_SI_LEVEL() do { /* Implement me! */ } while (0)
/**
* Do anything that needed to init sipo pins.
*/
#define SIPO_INIT_PIN() do { /* Implement me! */ } while (0)
#endif /* HW_SIPO_H */

View File

@ -1,114 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Hardware macro definition.
*
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_SPI_H
#define HW_SPI_H
#warning TODO:This is an example implentation, you must implement it!
#include <cfg/macros.h>
/**
* SPI pin definition.
*
* \note CS is assert when level
* is low.
*
* \{
*/
#define CS /* pin */ ///Connect to CS pin of Flash memory.
#define SCK /* pin */ ///Connect to SCK pin of Flash memory.
#define MOSI /* pin */ ///Connect to SI pin of Flash memory.
#define MISO /* pin */ ///Connect to SO pin of Flash memory.
#define SPI_PORT /* pin */ ///Micro pin PORT register.
#define SPI_PIN /* pin */ ///Micro pin PIN register.
#define SPI_DDR /* pin */ ///Micro pin DDR register.
/*\}*/
/**
* Pin logic level.
*
* \{
*/
#define MOSI_LOW() do { /* Implement me! */ } while(0)
#define MOSI_HIGH() do { /* Implement me! */ } while(0)
#define MISO_HIGH() do { /* Implement me! */ } while(0)
#define SCK_LOW() do { /* Implement me! */ } while(0)
#define SCK_HIGH() do { /* Implement me! */ } while(0)
#define CS_LOW() do { /* Implement me! */ } while(0)
#define CS_HIGH() do { /* Implement me! */ } while(0)
/*\}*/
/**
* SPI pin commands.
*
* \{
*/
#define CS_ENABLE() CS_LOW()
#define CS_DISABLE() CS_HIGH()
#define SS_ACTIVE() CS_LOW()
#define SS_INACTIVE() CS_HIGH()
#define SCK_INACTIVE() SCK_LOW()
#define SCK_ACTIVE() SCK_HIGH()
#define CS_OUT() do { /* Implement me! */ } while(0)
#define MOSI_IN() do { /* Implement me! */ } while(0)
#define MOSI_OUT() do { /* Implement me! */ } while(0)
#define IS_MISO_HIGH() (false /* Implement me! */ )
#define MISO_IN() do { /* Implement me! */ } while(0)
#define MISO_OUT() do { /* Implement me! */ } while(0)
#define SCK_OUT() do { /* Implement me! */ } while(0)
#define SCK_PULSE()\
do {\
SCK_HIGH();\
SCK_LOW();\
} while (0)
/*\}*/
#define SPI_HW_INIT() \
CS_DISABLE();\
MOSI_LOW();\
SCK_LOW();\
MISO_IN();\
MOSI_OUT();\
SCK_OUT();\
CS_OUT();
#endif /* HW_SPI_H */

View File

@ -1,308 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Stepper hardware-specific definitions
*
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_STEPPER_H
#define HW_STEPPER_H
#include <hw/hw_cpufreq.h>
#include <cfg/macros.h>
#include <drv/timer.h>
#warning TODO:This is an example implentation, you must implement it!
#define STEPPER_STROBE_INIT \
do { \
/* put init code for strobe */ \
} while (0)
#define STEPPER_STROBE_ON do { /* Implement me! */ } while(0)
#define STEPPER_STROBE_OFF do { /* Implement me! */ } while(0)
/**
* CPU clock frequency is divided by 2^STEPPER_PRESCALER_LOG2 to
* obtain stepper clock.
*/
#define STEPPER_PRESCALER_LOG2 1
/**
* Stepper timer clock frequency.
*/
#define STEPPER_CLOCK ((CPU_FREQ) >> STEPPER_PRESCALER_LOG2)
/**
* us delay to reset a stepper motor.
* This is the time neccessary to reset
* the stepper controll chip. (see datasheet for more detail).
*/
#define STEPPER_RESET_DELAY 1
/*
* Pins define for each stepper
*/
#define STEPPER_1_CW_CCW_PIN 0
#define STEPPER_1_HALF_FULL_PIN 0
#define STEPPER_1_CONTROL_PIN 0
#define STEPPER_1_ENABLE_PIN 0
#define STEPPER_1_RESET_PIN 0
/* put here other stepper motor */
#define STEPPER_1_SET do { /* Implement me! */ } while(0)
/* add here the set for other stepper motor */
#define STEPPER_1_CLEAR do { /* Implement me! */ } while(0)
/* add here the clear for other stepper motor */
/*
* Generic macro definition
*/
/*
* Stepper init macro
*/
#define STEPPER_PIN_INIT_MACRO(port, index) do { \
/* Add here init pin code */ \
} while (0)
/*
* Stepper commands macros
*/
#define STEPPER_SET_CW(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_CCW(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_HALF(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_FULL(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_CONTROL_LOW(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_CONTROL_HIGHT(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_ENABLE(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_DISABLE(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_RESET_ENABLE(index) do { /* Implement me! */ } while (0)
#define STEPPER_SET_RESET_DISABLE(index) do { /* Implement me! */ } while (0)
/*
* Reset stepper macro
*/
#define STEPPER_RESET_MACRO(index) do { \
STEPPER_SET_RESET_ENABLE(index); \
timer_udelay(STEPPER_RESET_DELAY); \
STEPPER_SET_RESET_DISABLE(index); \
} while (0)
/*
* Set half or full step macro
*/
#define STEPPER_SET_STEP_MODE_MACRO(index, flag) do { \
if (flag) \
STEPPER_SET_HALF(index); \
else \
STEPPER_SET_FULL(index); \
} while (0)
/*
* Set control status macro
*/
#warning TODO: This macro is not implemented (see below)
#define STEPPER_SET_CONTROL_BIT_MACRO(index, flag) do { \
/* if (flag) */ \
/* WARNING This macros not implemented */ \
/* else */ \
/* WARNING This macros not implemented */ \
} while (0)
/*
* Set current power macro
*/
#warning TODO: This macro is not implemented (see below)
#define STEPPER_SET_POWER_CURRENT_MACRO(index, flag) do { \
/* if (flag) */ \
/* WARNING This macrois not implemented */ \
/* else */ \
/* WARNING This macrois not implemented */ \
} while (0)
/*
* Set rotation of stepper motor
* - dir = 1: positive rotation
* - dir = 0: no motor moviment
* - dir = -1: negative rotation
*
*/
#define STEPPER_SET_DIRECTION_MACRO(index, dir) do { \
switch (dir) \
{ \
case 1: \
STEPPER_SET_CW(index); \
break; \
case -1: \
STEPPER_SET_CCW(index); \
break; \
case 0: \
break; \
} \
} while (0)
/*
* Define macros for manage low level of stepper.
*/
#define STEPPER_INIT() do { \
STEPPER_PIN_INIT_MACRO(A, 1); \
/* Add here code for other stepper motor */ \
} while (0)
/*
* Enable select stepper motor
*/
#define STEPPER_ENABLE(index) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_ENABLE(1); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
/*
* Enable all stepper connect to micro
*/
#define STEPPER_ENABLE_ALL() do { \
STEPPER_SET_ENABLE(1); \
/* Add here code for other stepper motor */ \
} while (0)
/*
* Disable select stepper motor
*/
#define STEPPER_DISABLE(index) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_DISABLE(1); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
/*
* Disable all stepper connect to micro
*/
#define STEPPER_DISABLE_ALL() do { \
STEPPER_SET_DISABLE(1); \
/* Add here code for other stepper motor */ \
} while (0)
/*
* Reset selected stepper motor
*/
#define STEPPER_RESET(index) do { \
switch (index) \
{ \
case 1: \
STEPPER_RESET_MACRO(1); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
/*
* Reset all stepper motor
*/
#define STEPPER_RESET_ALL() do { \
STEPPER_RESET_MACRO(1) \
/* Add here code for other stepper motor */ \
} while (0)
// Set half/full step macros
#define STEPPER_SET_HALF_STEP(index, flag) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_STEP_MODE_MACRO(1, flag); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
// Control status
#define STEPPER_SET_CONTROL_BIT(index, flag) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_CONTROL_BIT_MACRO(1, flag); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
// Set stepper power current
#define STEPPER_SET_POWER_CURRENT(index, flag) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_POWER_CURRENT_MACRO(1, flag); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
// Set rotation dirction of stepper motor
#define STEPPER_SET_DIRECTION(index, dir) do { \
switch (index) \
{ \
case 1: \
STEPPER_SET_DIRECTION_MACRO(1, dir); \
break; \
/* Add here code for other stepper motor */ \
} \
} while (0)
#endif /* HW_STEPPER_H */

View File

@ -1,64 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2009 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief HW pin handling.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_TAS5706A_H
#define HW_TAS5706A_H
#include <cfg/macros.h>
#warning FIXME: This is an example implementation, you must implement it
#define TAS5706A_SETPOWERDOWN(val) do { (void) val; /* implement me */ } while (0)
#define TAS5706A_SETRESET(val) do { (void) val; /* implement me */ } while (0)
#define TAS5706A_SETMUTE(val) do { (void) val; /* implement me */ } while (0)
#define TAS5706A_PIN_INIT() \
do { \
TAS5706A_SETPOWERDOWN(true); \
TAS5706A_SETRESET(true); \
TAS5706A_SETMUTE(true); \
/* complete me */ \
} while (0)
#define TAS5706A_MCLK_INIT() \
do { \
/* implement me */ \
} while(0)
#endif /* HW_TAS5706A_H */

View File

@ -1,181 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief thermo hardware-specific control functions.
*
* \author Francesco Sacchi <batt@develer.com>
*
*/
#ifndef HW_THERMO_H
#define HW_THERMO_H
#include "thermo_map.h"
#include "ntc_map.h"
#include <drv/phase.h>
#include <drv/ntc.h>
#include <cfg/debug.h>
#include <cfg/compiler.h>
#warning TODO:This is an example implentation, you must implement it!
/*!
* This function should return the temperature set tolerance.
*/
INLINE deg_t thermo_hw_tolerance(ThermoDev dev)
{
ASSERT(dev < THERMO_CNT);
switch (dev)
{
case THERMO_TEST:
/* Put here convertion function to temperature size */
break;
/* Put here your thermo device */
default:
ASSERT(0);
}
return 0;
}
/*!
* This function should return the timeout for reaching the
* target temperature.
*/
INLINE ticks_t thermo_hw_timeout(ThermoDev dev)
{
ASSERT(dev < THERMO_CNT);
switch (dev)
{
case THERMO_TEST:
/* return ms_to_ticks(60000); */
break;
/* Put here a time out for select thermo device */
default:
ASSERT(0);
}
return 0;
}
/*!
* Read the temperature of the hw device \a dev.
*/
INLINE deg_t thermo_hw_read(ThermoDev dev)
{
return ntc_read(dev);
}
/*!
* Turns off a specific device.
* This function is usefull to handle errors.
*/
INLINE void thermo_hw_off(ThermoDev dev)
{
ASSERT(dev < THERMO_CNT);
switch (dev)
{
case THERMO_TEST:
phase_setPower(TRIAC_TEST, 0);
break;
/* Put here a thermo device to turn off */
default:
ASSERT(0);
}
}
/*!
* Based on the current temperature \a cur_temp and the target temperature \a target, this function turns on and off specific
* triac channel and handles the freezer alarm.
* It may use also PID control for thermo-regolations.
*/
INLINE void thermo_hw_set(ThermoDev dev, deg_t target, deg_t cur_temp)
{
ASSERT(dev < THERMO_CNT);
deg_t dist = target - cur_temp;
//kprintf("dev[%d], dist[%d]\n", dev, dist);
switch(dev)
{
case THERMO_TEST:
if (dist > 0)
{
/* phase_setPower(TRIAC_TEST, dist * PID_TEST_K); */
}
else
{
/* phase_setPower(TRIAC_TEST, 0); */
}
break;
/* Put here an other thermo device */
default:
ASSERT(0);
}
}
#define THERMO_HW_INIT _thermo_hw_init()
/*!
* Init hw associated with thermo-control.
*/
INLINE void _thermo_hw_init(void)
{
ASSERT(phase_initialized);
ASSERT(ntc_initialized);
phase_setPower(TRIAC_TEST, 0);
/* Add here the other thermo device */
}
#endif /* HW_THERMO_H */

View File

@ -1,69 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2010 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief TLV5816 DAC hardware-specific definitions
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef HW_TLV5816_H
#define HW_TLV5816_H
#warning TODO:This is an example implementation, you must implement it!
#define TLV5618_CSINIT(pin) \
do \
{ \
(void)pin; \
/* Implement me! */ \
TLV5618_CSHIGH(pin); \
} while(0)
#define TLV5618_CSLOW(pin) \
do \
{ \
(void)pin; \
/* Implement me! */ \
} while(0)
#define TLV5618_CSHIGH(pin) \
do \
{ \
(void)pin; \
/* Implement me! */ \
} while(0)
#endif /* HW_TLV5816_H */

View File

@ -1,52 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2009 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Hardware macro definition.
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_TMP123_H
#define HW_TMP123_H
#warning TODO:This is an example implentation, you must implement it!
#define TMP123_HW_CS_EN() /* Implement me! */
#define TMP123_HW_CS_DIS() /* Implement me! */
#define TMP123_HW_INIT() \
do { \
/* Pin init */\
} while (0)
#endif /* HW_TMP123_H */

View File

@ -1,70 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000 Bernie Innocenti
* All Rights Reserved.
* -->
*
* \brief Keyboard map definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
* \author Stefano Fedrigo <a@develer.com>
*/
#ifndef HW_KBD_MAP_H
#define HW_KBD_MAP_H
#include <cfg/macros.h>
#warning TODO:This is an example implentation, you must implement it!
/**
* Type for keyboard mask.
*/
typedef uint16_t keymask_t;
/**
* \name Keycodes.
*/
/*@{*/
#define K_UP BV(0)
#define K_DOWN BV(1)
#define K_OK BV(2)
#define K_CANCEL BV(3)
#define K_REPEAT BV(13) /**< This is a repeated keyevent. */
#define K_TIMEOUT BV(14) /**< Fake key event for timeouts. */
#define K_LONG BV(15)
/*@}*/
#define K_LNG_MASK 0
#endif /* HW_KBD_MAP_H */

View File

@ -1,58 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief MCP41 digital potentiometer map definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef MCP41_MAP_H
#define MCP41_MAP_H
#warning TODO:This is an example implentation, you must implement it!
/** \name Enum for mcp41 pot evices.
* \{
*
*/
typedef enum Mcp41Dev
{
MCP41_LED,
/* put here other mcp41 device */
MCP41_CNT,
} Mcp41Dev;
/* \} */
#endif /* MCP41_MAP_H */

View File

@ -1,60 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief NTC map definitions.
*
*
* \author Giovanni Bajo <rasky@develer.com>
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef NTC_MAP_H
#define NTC_MAP_H
#include <cfg/compiler.h>
#warning TODO:This is an example implentation, you must implement it!
/*! \name Enum for ntc devices.
* \{
*/
typedef enum NtcDev
{
NTC_TEST,
/* Put here your thermo device */
NTC_CNT
} NtcDev;
/* \} */
#endif /* NTC_MAP_H */

View File

@ -1,57 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Triac map definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef PHASE_MAP_H
#define PHASE_MAP_H
#warning TODO:This is an example implentation, you must implement it!
/*! \name Enum for triac devices.
* \{
*/
typedef enum TriacDev
{
TRIAC_TEST,
/* Put here other triac device */
TRIAC_CNT
} TriacDev;
/* \} */
#endif /* PHASE_MAP_H */

View File

@ -1,60 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
*
* \brief PWM map device.
*
*
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef HW_PWM_MAP_H
#define HW_PWM_MAP_H
#warning TODO:This is an example implentation, you must implement it!
typedef enum
{
PWM_CH0 = 0,
PWM_CH1,
PWM_CH2,
PWM_CH3,
/*
* add other PWM channel or
* change above.
*/
PWM_CNT
} PwmDev;
#endif /* HW_PWM_MAP_H */

View File

@ -1,69 +0,0 @@
/**
* \file
* <!--
* This file is part of BeRTOS.
*
* Bertos is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2008 Develer S.r.l. (http://www.develer.com/)
* All Rights Reserved.
* -->
*
* \brief Thermo regulation control map definitions.
*
*
* \author Francesco Sacchi <batt@develer.com>
*/
#ifndef THERMO_MAP_H
#define THERMO_MAP_H
#include <cfg/compiler.h>
#include <cfg/macros.h>
#warning TODO:This is an example implentation, you must implement it!
typedef uint8_t thermostatus_t;
#define THERMO_OFF 0
#define THERMO_HEATING BV(0)
#define THERMO_FREEZING BV(1)
#define THERMO_TGT_REACH BV(2)
#define THERMOERRF_NTCSHORT BV(3)
#define THERMOERRF_NTCOPEN BV(4)
#define THERMOERRF_TIMEOUT BV(5)
#define THERMO_ACTIVE BV(6)
#define THERMO_ERRMASK (THERMOERRF_NTCSHORT | THERMOERRF_NTCOPEN | THERMOERRF_TIMEOUT)
typedef enum ThermoDev
{
THERMO_TEST,
/* Put here your thermo device */
THERMO_CNT,
} ThermoDev;
#endif /* THERMO_MAP_H */

View File

@ -1,2 +1,2 @@
#define VERS_BUILD 1560
#define VERS_BUILD 1570
#define VERS_HOST "shard"