TavelDator

Berätta om dina pågående projekt.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: TavelDator

Inlägg av victor_passe »

Ska funka nu
Användarvisningsbild
Klas-Kenny
Inlägg: 11328
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: TavelDator

Inlägg av Klas-Kenny »

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 :)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: TavelDator

Inlägg av victor_passe »

Lamporna blinkade här iaf.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Re: TavelDator

Inlägg av jojje »

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?
Användarvisningsbild
PeterH
Inlägg: 8614
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Re: TavelDator

Inlägg av PeterH »

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 :idea: )
Användarvisningsbild
digitaliz
Inlägg: 278
Blev medlem: 10 oktober 2003, 21:27:38
Ort: Stockholm, Sverige

Re: TavelDator

Inlägg av digitaliz »

Snyggt :)
Jag har varit och klickat lite också. Hoppas jag lyckades stänga av allt jag slog på :D
Användarvisningsbild
Electricguy
Inlägg: 12304
Blev medlem: 15 augusti 2007, 16:52:14
Ort: Kälmä' typ..

Re: TavelDator

Inlägg av Electricguy »

hehe, jo de va lute spännande o trycka på det man inte vet vad det är! :D vo o pillade oxå :)
mippen
Inlägg: 740
Blev medlem: 15 april 2009, 15:34:31
Ort: Lindome

Re: TavelDator

Inlägg av mippen »

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 :wink:
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: TavelDator

Inlägg av victor_passe »

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:

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);

 }

}
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.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: TavelDator

Inlägg av victor_passe »

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.
Skriv svar