Commit a7a9e839 authored by Martin Enriquez's avatar Martin Enriquez

Cambio la lectura del data 0 por data 1 porque no funcionaba

parent 7d8fe198
*** SESSION nov. 30, 2015 11:22:04.27 ------------------------------------------
*** SESSION nov. 30, 2015 11:43:54.78 ------------------------------------------
*** SESSION nov. 30, 2015 15:59:02.12 ------------------------------------------
11:44:16 **** Incremental Build of configuration Release for project Remoto-con-8 ****
16:46:04 **** Incremental Build of configuration Release for project Remoto-con-8 ****
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
Finished building: ../main.c
Building target: Remoto-con-8.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,Remoto-con-8.map -mmcu=atmega8 -o "Remoto-con-8.elf" ./main.o ./mcu.o ./nrf24l01.o
Finished building target: Remoto-con-8.elf
Invoking: AVR Create Extended Listing
avr-objdump -h -S Remoto-con-8.elf >"Remoto-con-8.lss"
Finished building: Remoto-con-8.lss
Create Flash image (ihex format)
avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex Remoto-con-8.elf "Remoto-con-8.hex"
Finished building: Remoto-con-8.hex
Create eeprom image (ihex format)
avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex Remoto-con-8.elf "Remoto-con-8.eep"
Finished building: Remoto-con-8.eep
Invoking: Print Size
avr-size --format=avr --mcu=atmega8 Remoto-con-8.elf
AVR Memory Usage
----------------
Device: atmega8
Program: 1490 bytes (18.2% Full)
Program: 1514 bytes (18.5% Full)
(.text + .data + .bootloader)
Data: 14 bytes (1.4% Full)
......@@ -16,5 +38,5 @@ Data: 14 bytes (1.4% Full)
Finished building: sizedummy
11:44:16 Build Finished (took 97ms)
16:46:05 Build Finished (took 143ms)
12:07:24 **** Incremental Build of configuration Release for project modulo_on_off ****
16:48:22 **** Incremental Build of configuration Release for project modulo_on_off ****
make all
Building file: ../mcu.c
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"mcu.d" -MT"mcu.o" -c -o "mcu.o" "../mcu.c"
Finished building: ../mcu.c
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
Finished building: ../main.c
Building target: modulo_on_off.elf
Invoking: AVR C Linker
......@@ -28,7 +28,7 @@ AVR Memory Usage
----------------
Device: atmega8
Program: 1378 bytes (16.8% Full)
Program: 1348 bytes (16.5% Full)
(.text + .data + .bootloader)
Data: 15 bytes (1.5% Full)
......
12:07:24 **** Incremental Build of configuration Release for project modulo_on_off ****
16:48:22 **** Incremental Build of configuration Release for project modulo_on_off ****
make all
Building file: ../mcu.c
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"mcu.d" -MT"mcu.o" -c -o "mcu.o" "../mcu.c"
Finished building: ../mcu.c
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
Finished building: ../main.c
Building target: modulo_on_off.elf
Invoking: AVR C Linker
......@@ -28,7 +28,7 @@ AVR Memory Usage
----------------
Device: atmega8
Program: 1378 bytes (16.8% Full)
Program: 1348 bytes (16.5% Full)
(.text + .data + .bootloader)
Data: 15 bytes (1.5% Full)
......@@ -38,5 +38,5 @@ Data: 15 bytes (1.5% Full)
Finished building: sizedummy
12:07:24 Build Finished (took 199ms)
16:48:22 Build Finished (took 183ms)
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;
int main(void)
{
init_megazord();
int i;
for (i = 0; i < 11; i++)
{
LED ^= 1;
_delay_ms(200);
}
while(1)
{
RELE = rele? 1 : 0; // Debo encender el rel�?
/*
* Esto se quitó y sigue funcionando. Lunes 30/11/2015.
* Posiblemente no se incluya en proximas versiones.
* if (demora_tx >= 20)
{
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
*/
}
return 0;
}
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
LED ^= 1;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Leo el mensaje
if(rele)
{
rele = 0;
}
else
{
rele = 1;
}
// switch(data[0])
// {
// case RELE_ON:
// rele = 1;
// break;
// case RELE_OFF:
// rele = 0;
// break;
// case RELE_TOGGLE:
// if(rele)
// {
// rele = 0;
// }
// else
// {
// rele = 1;
// }
// break;
// case ENTRO_PANTALLA:
// enviar_estado = 1;
// break;
// }
data[0] = 0;
sei();
CE = 1; // CE alto
reset();
}
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
TCNT1L = 0x17; //Tiempo para hacer que el timer cuente durante 1 mSeg
demora_tim1++;
demora_tx++;
tiempo_tx++;
}
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;
int main(void)
{
init_megazord();
int i;
for (i = 0; i < 11; i++)
{
LED ^= 1;
_delay_ms(200);
}
while(1)
{
RELE = rele? 1 : 0; // Debo encender el rel�?
/*
* Esto se quitó y sigue funcionando. Lunes 30/11/2015.
* Posiblemente no se incluya en proximas versiones.
* if (demora_tx >= 20)
{
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
*/
}
return 0;
}
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
LED ^= 1;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Leo el mensaje
switch(data[0])
{
case RELE_ON:
rele = 1;
break;
case RELE_OFF:
rele = 0;
break;
case RELE_TOGGLE:
if(rele)
{
rele = 0;
}
else
{
rele = 1;
}
break;
}
data[0] = 0;
sei();
CE = 1; // CE alto
reset();
}
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
TCNT1L = 0x17; //Tiempo para hacer que el timer cuente durante 1 mSeg
demora_tim1++;
demora_tx++;
tiempo_tx++;
}
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;
int main(void)
{
init_megazord();
int i;
for (i = 0; i < 11; i++)
{
LED ^= 1;
_delay_ms(200);
}
while(1)
{
// RELE = rele? 1 : 0; // Debo encender el rel�?
/*
* Esto se quitó y sigue funcionando. Lunes 30/11/2015.
* Posiblemente no se incluya en proximas versiones.
* if (demora_tx >= 20)
{
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
*/
}
return 0;
}
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
LED ^= 1;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Leo el mensaje
switch(data[1]) //Al buscar el mensaje en data[0] el mismo no contenia los datos correctos. Buscando en el 1 se soluciona este inconveniente.
{
case RELE_ON:
rele = 1;
break;
case RELE_OFF:
rele = 0;
break;
case RELE_TOGGLE:
RELE ^= 1;
Set_frec(FREC_LUCES);
break;
}
data[0] = 0;
sei();
CE = 1; // CE alto
reset();
}
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
TCNT1L = 0x17; //Tiempo para hacer que el timer cuente durante 1 mSeg
demora_tim1++;
demora_tx++;
tiempo_tx++;
}
/*
* comunicacion.h
*
* Created on: 11/2/2015
* Author: Martín
*/
#ifndef COMUNICACION_H_
#define COMUNICACION_H_
/* ======== COMANDOS ========= */
#define RELE_ON 0x0F
#define RELE_OFF 0x01
#define RELE_TOGGLE 0x0A
#define ENTRO_PANTALLA 0x07
#define LUCES_ON 0x1F
#define LUCES_OFF 0x11
#define LUCES_TOGGLE 0x1A
#define LUCES_DUTY 0x1D
#define LUCES_AUMENTAR 0x1B
#define LUCES_DISMINUIR 0x1C
/* ======= FRECUENCIAS ======== */
#define FREC_LUCES 0x66
#define FREC_ON_OFF 0x78
#endif /* COMUNICACION_H_ */
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;
int main(void)
{
init_megazord();
int i;
for (i = 0; i < 11; i++)
{
LED ^= 1;
_delay_ms(200);
}
while(1)
{
RELE = rele? 1 : 0; // Debo encender el rel�?
/*
* Esto se quitó y sigue funcionando. Lunes 30/11/2015.
* Posiblemente no se incluya en proximas versiones.
* if (demora_tx >= 20)
{
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
*/
// if (enviar_estado && tiempo_tx >= 500) // Si se entro en la pantalla del enchufe y pasaron 500ms se env�a el estado actual
// {
// if (rele)
// data[0] = RELE_ON;
// else
// data[0] = RELE_OFF;
// Modo_TX();
// transmit_payload(data);
// tiempo_tx = 0;
// demora_tx = 0;
//
// enviar_estado = 0;
// }
}
return 0;
}
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
LED ^= 1;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Leo el mensaje
if(rele)
{
rele = 0;
}
else
{
rele = 1;
}
// switch(data[0])
// {
// case RELE_ON:
// rele = 1;
// break;
// case RELE_OFF:
// rele = 0;
// break;
// case RELE_TOGGLE:
// if(rele)
// {
// rele = 0;
// }
// else
// {
// rele = 1;
// }
// break;
// case ENTRO_PANTALLA:
// enviar_estado = 1;
// break;
// }
data[0] = 0;
sei();
CE = 1; // CE alto
reset();
}
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
TCNT1L = 0x17; //Tiempo para hacer que el timer cuente durante 1 mSeg
demora_tim1++;
demora_tx++;
tiempo_tx++;
}
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;
int main(void)
{
init_megazord();
int i;
for (i = 0; i < 11; i++)
{
LED ^= 1;
_delay_ms(200);
}
while(1)
{
// RELE = rele? 1 : 0; // Debo encender el rel�?
/*
* Esto se quitó y sigue funcionando. Lunes 30/11/2015.
* Posiblemente no se incluya en proximas versiones.
* if (demora_tx >= 20)
{
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
*/
}
return 0;
}
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
LED ^= 1;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Leo el mensaje
switch(data[1]) //Al buscar el mensaje en data[0] el mismo no contenia los datos correctos. Buscando en el 1 se soluciona este inconveniente.
{
case RELE_ON:
rele = 1;
break;
case RELE_OFF:
rele = 0;
break;
case RELE_TOGGLE:
RELE ^= 1;
if(RELE)
Set_frec(FREC_LUCES);
else
Set_frec(FREC_ON_OFF);
break;
}
data[0] = 0;
sei();
CE = 1; // CE alto
reset();
}
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
TCNT1L = 0x17; //Tiempo para hacer que el timer cuente durante 1 mSeg
demora_tim1++;
demora_tx++;
tiempo_tx++;
}
/*
* Proyecto de Domotica - Tecnicas Digitales III
* Modulo On Off
* Este programa utiliza los comandos que recibe a traves
* del modulo NRF24L01+ para modificar el estado de
* una salida de manera inalambrica.
*
* NOTA: Modificar configuraciones de frecuencia, rol y
* pines en hardware.h
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "nrf24l01.h"
#include "mcu.h"
#include "hardware.h"
#include "comunicacion.h"
volatile unsigned char rele = 0, enviar_estado = 0;
uint8_t *data;