Commit 116460b6 authored by Leandro Lanzieri's avatar Leandro Lanzieri

Merge branch 'master' of gitlab.com:leandrolanzieri/proyecto-digitales

parents 06465a94 782a5188
......@@ -6,7 +6,7 @@
## General Flags
OBJDIR=Generado
PRJ = nodo-central
MCU = atmega8
MCU = atmega328p
FCPU = 8000000UL
TARGET = $(OBJDIR)/$(PRJ).elf
CC = avr-gcc
......
......@@ -56,24 +56,18 @@ ISR(INT0_vect)
cli();
CE = 0; // CE bajo
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Lee el mensaje
/*
switch(data[0])
{
case ENVIAR_TEMP:
// Llega temperatura del nodo
//transmitirByteUART(data[0]);
//transmitirByteUART(data[1]);
transmitirByteUART(data[0]);
transmitirByteUART(data[1]);
ledBlink();
break;
}*/
switch (data[1])
{
case 200:
break;
}
ledBlink();
sei();
CE = 1; // CE alto
reset();
......
......@@ -33,7 +33,7 @@
void inicializarTodo() {
// inicializarUART();
inicializarUART();
inicializarGPIO();
inicializarSPI();
inicializarInterrupcionesExternas();
......
......@@ -137,6 +137,7 @@ ISR(USART_RX_vect) {
unsigned char datos[5];
unsigned char dato = recibirByteUART();
if(comandoValido(dato)) {
reset();
Modo_TX();
datos[0] = dato;
datos[1] = PING;
......@@ -151,7 +152,6 @@ ISR(USART_RX_vect) {
*/
_delay_ms(20);
reset();
LED ^= 1;
Modo_RX();
}
}
......@@ -43,7 +43,7 @@ LIBS = -lm -lc
## Objects that must be built in order to link
OBJECTS = $(OBJDIR)/mcu.o $(OBJDIR)/nrf24l01.o $(OBJDIR)/main.o
OBJECTS = $(OBJDIR)/mcu.o $(OBJDIR)/nrf24l01.o $(OBJDIR)/main.o $(OBJDIR)/adc.o
## Objects explicitly added by the user
......
......@@ -34,75 +34,71 @@
#include "mcu.h"
#include "adc.h"
unsigned int demora_tx=0;
unsigned char enviar=0;
volatile unsigned char enviar=0;
uint8_t* data;
int main(void) {
unsigned char temperatura=200;
inicializarTodo();
Modo_TX(); // Cambia a transmitir
Modo_RX(); // Cambia a transmitir
Set_frec(FREC_ON_OFF); // Cambia a frecuencia ON OFF
ledBlink(); // Muestra que termino
data[0] = ENVIAR_TEMP;
data[1] = 200;
while(1) {
// if (demora_tx >= 20) {
// reset();
// Modo_RX();
// CE = 1;
// demora_tx = 0;
// _delay_ms(20);
// }
//
// if (enviar){
// //temperatura = lectADCToGrados(convertirADC0());
// data[0]=ENVIAR_TEMP;
// data[1]=temperatura;
// Modo_TX();
// transmit_payload(data);
// enviar=0;
// }
_delay_ms(2000);
Modo_TX();
_delay_ms(20);
transmit_payload(data);
_delay_ms(20);
reset();
LED ^= 1;
if (demora_tx >= 20) {
reset();
Modo_RX();
CE = 1;
demora_tx = 0;
_delay_ms(20);
}
if (enviar==1){
//temperatura = lectADCToGrados(convertirADC0());
_delay_ms(100);
data[0]=ENVIAR_TEMP;
data[1]=temperatura;
enviar =2;
Modo_TX();
transmit_payload(data);
}
// Modo_RX();
// _delay_ms(20);
// reset();
// LED ^= 1;
}
}
/*
ISR(INT0_vect)
{
cli();
CE = 0; // CE bajo
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Lee el mensaje
switch(data[0]) //Al buscar el mensaje en data[0] el mismo no contenia los datos correctos. Buscando en el 1 se soluciona este inconveniente.
if (enviar == 0)
{
case RELE_ON:
LED = 1;
break;
case RELE_OFF:
LED = 0;
break;
case RELE_TOGGLE:
LED ^= 1;
break;
case MEDIR_TEMP:
ledBlink();
enviar =1;
break;
data = WriteToNrf(R, R_RX_PAYLOAD, data, dataLen); //Lee el mensaje
switch(data[0]) //Al buscar el mensaje en data[0] el mismo no contenia los datos correctos. Buscando en el 1 se soluciona este inconveniente.
{
case MEDIR_TEMP:
enviar =1;
break;
default:
LED^=1;
}
}
else enviar =0;
sei();
CE = 1; // CE alto
reset();
return;
}
*/
ISR (TIMER1_OVF_vect)
{
TCNT1H = 0xFC;
......
......@@ -34,9 +34,9 @@
void inicializarTodo() {
inicializarGPIO();
inicializarSPI();
// inicializarInterrupcionesExternas();
inicializarInterrupcionesExternas();
inicializarNRF24L01();
inicializarADC();
//inicializarADC();
inicializarTimer();
sei(); // Habilita interrupciones
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment