NEXA mottagare

Berätta om dina pågående projekt.
danielr112
Inlägg: 8092
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: NEXA mottagare

Inlägg av danielr112 »

Jag som kör med MikroC :D

Härligt att få titta på. Blir nog att inhandla sådant itll helgen iallfall. Fasen de kliar i fingrarna.
Användarvisningsbild
lond
Inlägg: 3545
Blev medlem: 23 september 2009, 11:52:45
Ort: Hyssna

Re: NEXA mottagare

Inlägg av lond »

Det var roligt att ni tyckte om min kod, även om det är skriven i fel språk :)

Det som är viktigast att justera i koden är värdera som bestämmer tiderna för att trigga pulserna från mottagaren beroende vilken frekvens man har på kristallen. Jag har använt en 16MHz kristall med drivare bara för att jag har sådana liggande :) .
Jag har finjusterat värdera genom att koppla dom 4 lysdioderna, mottagarpinnen och TXD till en logik analysator, så att jag kan se precis vad som händer :) .
Kopplar man ihop RTS och CTS så skickar µP ut den mottagna informationen direkt på TXD.

Logik analysatorn är nog faktiskt mitt bästa inköp pga den har underlättat så mycket pga den visar allt så visuellt vad som händer när man håller på och testar.

// Marcus
helldin
Inlägg: 7
Blev medlem: 8 oktober 2009, 09:46:06

Re: NEXA mottagare

Inlägg av helldin »

Hur lång är varje bit samt tiden mellan hög å låg?
danielr112
Inlägg: 8092
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: NEXA mottagare

Inlägg av danielr112 »

Hur har det gått med denna? Jag behöver bygga mig en logger så ja kan se allt jag styr med mina "nexa" sändare hemma.. :D
Användarvisningsbild
lond
Inlägg: 3545
Blev medlem: 23 september 2009, 11:52:45
Ort: Hyssna

Re: NEXA mottagare

Inlägg av lond »

Jag har 2st byggda, en som sitter i en ombyggd IKEA-lampa med RGB-led i och en som fungerar som en logger/experiment-plattform.
Funderar på att göra en ny variant med µP med inbyggd 8MHz kristall.

// Marcus
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

Re: NEXA mottagare

Inlägg av E85 »

Här är en kodsnutt jag skrev till AVR för att agera mottagare. Kan krävas lite eget funderande eftersom jag inte har kommenterat och kommer inte ihåg vilken frekvens jag körde den i... :vissla:
Som ni ser har jag hårdkodat koderna från min fjärr (0x00510551 osv). Beskrivningen hur koderna ser ut binärt finns att hitta på nätet nånstans... eller så spelar man in de helt enkelt med lite ändring i koden.

Kod: Markera allt

volatile unsigned char rfdatahigh;
volatile unsigned char rfdatacnt;
volatile unsigned long int rfdata;

ISR(TIM0_COMPA_vect)
{
	static unsigned int counter;
	if (counter < 65535) counter++;

	if (rfdatahigh && counter > 400)
	{
		rfdata = rfdata << 1;
		rfdata += (PINB & _BV(PB2)) ? 1 : 0;
		rfdatahigh = 0;
		if ((rfdata & 0x00FFFFFF) == 0x00510551)
		{
			button1_pressed();
			counter = 0;
		}
		else if ((rfdata & 0x00FFFFFF) == 0x00511151)
		{
			button2_pressed();
			counter = 0;
		}
		else if ((rfdata & 0x00FFFFFF) == 0x00510554)
		{
			button3_pressed();
			counter = 0;
		}
		else if ((rfdata & 0x00FFFFFF) == 0x00511154)
		{
			button4_pressed();
			counter = 0;
		}
	}
}

ISR(PCINT1_vect)
{
	rfdatahigh = 1;
	TCNT0 = 0;
}

int main(void)
{
	DDRB = 0x00;
	PORTB = 0x03;
	DDRA = 0x0F;

	//Setup Timer 0
	TCCR0A = 0x02;
	TCCR0B = 0x02;
	OCR0A = 0x4A;
	TCNT0 = 0;
	TIMSK0 = _BV(OCIE0A);

	//Setup interrupt on pin change
	GIMSK |= _BV(PCIE1);
	PCMSK1 = 0x04;

	sei(); //Enable interrupts

	while(1) {
	//Gör nåt kul
	}
}
Skriv svar