Commit 782a5188 authored by Martin Enriquez's avatar Martin Enriquez

Intento no exitoso de la comunicacion de enviar y recibir

parent 9b45c4df
......@@ -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();
......
......@@ -54,7 +54,7 @@ void inicializarUART() {
/* Comunicacion de 8 bits, 1 bits stop */
// UCSRC = (1 << URSEL) | (3 << UCSZ0);
UCSRC = (3 << UCSZ00);
UCSR0C = (3 << UCSZ00);
}
......@@ -133,10 +133,11 @@ unsigned char comandoValido(unsigned char comando) {
/* Rutina de interrupcion por recepcion
* de UART.
*/
ISR(USART_RXC_vect) {
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_RXC_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