TavelDator
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
- Klas-Kenny
- Inlägg: 11355
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: TavelDator
Intressant, synd bara att man inte kunde se något "resultat" av vad man gjorde, du borde ordna så att man kan se ifall saker är av eller på och liknande
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: TavelDator
Blir ingen skillnad vad man än trycker på.
Jag tryckte 2 ggr på varje av dom vänstra,
men ingenting hände eller visade någon förändring.
Var snälla och stäng av det ni slår på om ni testar något.
Hur ska man kunna sätta tillbaka nåt man gjort när man inte ser vad man gjort?
Jag tryckte 2 ggr på varje av dom vänstra,
men ingenting hände eller visade någon förändring.
Var snälla och stäng av det ni slår på om ni testar något.
Hur ska man kunna sätta tillbaka nåt man gjort när man inte ser vad man gjort?
Re: TavelDator
Gör som jag, tryck på OFF även om du inte tryckt på ON (borde ju stänga av det som är på även om du inte ser det )
Re: TavelDator
Snyggt
Jag har varit och klickat lite också. Hoppas jag lyckades stänga av allt jag slog på
Jag har varit och klickat lite också. Hoppas jag lyckades stänga av allt jag slog på
- Electricguy
- Inlägg: 12307
- Blev medlem: 15 augusti 2007, 16:52:14
- Ort: Kälmä' typ..
Re: TavelDator
hehe, jo de va lute spännande o trycka på det man inte vet vad det är! vo o pillade oxå
Re: TavelDator
blev man nyfiken på nexa modden....
Är det en serielina eller modulerad pinne mellan ditt PIC kort och nexa fjärr/sändaren?
Hade varit trevligt med ett schema och lite PIC kod
Är det en serielina eller modulerad pinne mellan ditt PIC kort och nexa fjärr/sändaren?
Hade varit trevligt med ett schema och lite PIC kod
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: TavelDator
Mellan halvorna på orginal fjärren går bara 0V, 3V och data.
När man lägger 3V på data pinnen så sänder den bärvåg, med 0:a sänder den inget.
Och kod kommer här:
Inga kommentarer men bör vara lätt att följa och använda om man nu vill.
Och Jag har haft disco hela natten lång här. Lampor blinkar, tv byter kanal och annat skoj.
När man lägger 3V på data pinnen så sänder den bärvåg, med 0:a sänder den inget.
Och kod kommer här:
Kod: Markera allt
/*
Format från FTDI:
0bXQAA.AASS
X=Dont Care
Q=Fråga efter nuvarande state på addresen AAAA
AAAA=Addr, 0-15
S=State, 0=Av, 1=På, 2=Toggle
Exempel;
Slå på enhet 0:
0bX0000001
Toggla enhet 15:
0bX0111110
fråga efter läget på enhet 8:
0bX11000XX
X=Dont Care
*/
#define nexa_tx_pin GPIO.F2
#define Uart_Rx GPIO.F5
#define Uart_Tx GPIO.F4
const unsigned short nexa_house_code[28]={
2,2,2,2,2,1,2,2,2,2,3,1,2,3,2,1,2,2,3,2,2,1,2,3,1,3,2,0};
const unsigned short nexa_addr[16][5]={
{2,2,2,1,0},{2,2,1,2,0},{2,1,3,1,0},{2,1,2,2,0},
{1,3,2,1,0},{1,3,1,2,0},{1,2,3,1,0},{1,2,2,2,0},
{3,2,2,1,0},{3,2,1,2,0},{3,1,3,1,0},{3,1,2,2,0},
{2,3,2,1,0},{2,3,1,2,0},{2,2,3,1,0},{2,2,2,2,0}};
unsigned short uart_data;
unsigned int nexa_state=0;
void nexa_send_trit(unsigned short trit)
{
while(trit)
{
nexa_tx_pin=1;
delay_us(266);
nexa_tx_pin=0;
delay_us(266);
trit--;
}
delay_us(1280-266);
}
void nexa_send_start_bit()
{
nexa_tx_pin=1;
delay_us(266);
nexa_tx_pin=0;
delay_us(2640);
}
void nexa_send_command(unsigned short addr, unsigned short state)
{
unsigned short i,rep;
if(state==0)
nexa_state&=~(1<<addr);
else if(state==1)
nexa_state|=(1<<addr);
else if(state==2)
{
nexa_state^=(1<<addr);
state=(nexa_state>>addr)&1;
}
for(rep=0;rep<5;rep++)
{
nexa_send_start_bit();
i=0;
while(nexa_house_code[i])
nexa_send_trit(nexa_house_code[i++]);
if(state)
{
nexa_send_trit(1);
nexa_send_trit(3);
}
else
{
nexa_send_trit(2);
nexa_send_trit(2);
}
i=0;
while(nexa_addr[addr][i])
nexa_send_trit(nexa_addr[addr][i++]);
delay_us(10200);
}
}
unsigned short uart_get_byte()
{
uart_data=0;
if(Uart_Rx)return 0;delay_us(45);//(dly/2)
if(Uart_Rx)return 0;delay_us(100);
if(Uart_Rx)uart_data|=1;delay_us(100);
if(Uart_Rx)uart_data|=2;delay_us(100);
if(Uart_Rx)uart_data|=4;delay_us(100);
if(Uart_Rx)uart_data|=8;delay_us(100);
if(Uart_Rx)uart_data|=16;delay_us(100);
if(Uart_Rx)uart_data|=32;delay_us(100);
if(Uart_Rx)uart_data|=64;delay_us(100);
if(Uart_Rx)uart_data|=128;delay_us(100);
if(!Uart_Rx)return 0;delay_us(45);
return 1;
}
void uart_put_byte(unsigned short data)
{
Uart_Tx=0;delay_us(103);
if(data& 1) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 2) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 4) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 8) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 16) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 32) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data& 64) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
if(data&128) Uart_Tx=1; else Uart_Tx=0;delay_us(103);
Uart_Tx=1;delay_us(103);
}
void main()
{
GPIO=0b010000; //Tx-pinnen ska vara 1
TRISIO=0b100000; //Ingång på Rx
CMCON0=7; //Ingen komparator
ANSEL=0; //Ingen ADC
OSCCON=0xFF; //8MHz
delay_ms(200);
while(1)
{
while(!uart_get_byte());
if(uart_data&0x40)
{
if((nexa_state>>((uart_data>>2)&0x0F))&1)
uart_put_byte(1);
else
uart_put_byte(0);
}
else
nexa_send_command((uart_data>>2)&0x0F,uart_data&3);
}
}
Och Jag har haft disco hela natten lång här. Lampor blinkar, tv byter kanal och annat skoj.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: TavelDator
Jag hade väldiga problem att få tv-kontrollen att inte låsa sig.
Först skrev jag direkt från php-koden till serieporten, då låste den sig ca 1/20 gånger och man fick koppla in /ut ftdi chippet för att det skulle funka igen.
Sedan skrev jag ett vb6 program som jag kallade från php koden och skrev till porten. det låstes lika ofta.
Nu funkar det iaf. Mycket ful lösning. men såhär funkar det:
php-koden skapar en textfil som innehåller kommandon till tv:n, en batch-fil ligger i en loop och läser filen var 3:dje sekund och skriver ut datan till comporten.
Så man får en delay på max 3sek men det funkar iaf nu.
Och jag satte in ett lösenord också, blev lite störande när tv:n bytte kanal och man tittade på något.
Och tanken är ju ändå att bara jag ska ändra.
Först skrev jag direkt från php-koden till serieporten, då låste den sig ca 1/20 gånger och man fick koppla in /ut ftdi chippet för att det skulle funka igen.
Sedan skrev jag ett vb6 program som jag kallade från php koden och skrev till porten. det låstes lika ofta.
Nu funkar det iaf. Mycket ful lösning. men såhär funkar det:
php-koden skapar en textfil som innehåller kommandon till tv:n, en batch-fil ligger i en loop och läser filen var 3:dje sekund och skriver ut datan till comporten.
Så man får en delay på max 3sek men det funkar iaf nu.
Och jag satte in ett lösenord också, blev lite störande när tv:n bytte kanal och man tittade på något.
Och tanken är ju ändå att bara jag ska ändra.