1 #include <avr/io.h> // this contains all the IO port definitions
2 #include <avr/pgmspace.h> // definitions or keeping constants in program memory
5 // table of POWER codes
7 #define freq_to_timerval(x) ((F_CPU / x - 1 )/ 2)
10 // Code 000 -- Sony, Baur, Neckermann, Otto Versand, Palladium, Quelle, SEI, Sinudyne, Sonolor, Universum
11 const struct powercode sonyCode PROGMEM
= {
12 freq_to_timerval(37470), // 37.47 KHz
38 {61 , 0}// end of code
42 //Code 001 - Proscan, RCA, Curtis Mathes, Dimensia, GE, JC Penney, LXI, Radio Shack/Realistic, Sears, Wards
43 const struct powercode rcaCode PROGMEM
= {
44 freq_to_timerval(55600), // 55.6 KHz
100 // Code 002 -- Panasonic
101 const struct powercode panasonicCode PROGMEM
= {
102 freq_to_timerval(36130), // 36.13 KHz
206 const struct powercode sharpCode PROGMEM
= {
207 freq_to_timerval( 37470), // 37.47 KHz
274 // Code 004 -- Toshiba, Apex
275 const struct powercode toshibaCode PROGMEM
= {
276 freq_to_timerval( 37470), // 37.47 KHz
318 // Code 005 -- Philips, Grundig, Pye
319 const struct powercode philipsCode PROGMEM
= {
320 freq_to_timerval( 34800), // 37.47 KHz
348 // Code 006 -- Samsung
349 const struct powercode samsungCode PROGMEM
= {
350 freq_to_timerval( 37470), // 37.47 KHz
422 // Code 007 -- Zenith
423 const struct powercode zenithCode PROGMEM
= {
424 freq_to_timerval( 38200),
462 // Code 008 --Pioneer, Sansui, Toshiba
463 const struct powercode pioneerCode PROGMEM
= {
464 freq_to_timerval( 37470),
535 // Code 009 -- Sylvania
536 const struct powercode sylvaniaCode PROGMEM
= {
537 freq_to_timerval( 37430),
580 const struct powercode jvcCode PROGMEM
= {
581 freq_to_timerval( 37470),
636 // Code 011 -- Hitachi
637 const struct powercode hitachiCode PROGMEM
= {
638 freq_to_timerval( 37470),
680 const struct powercode sampoCode PROGMEM
= {
681 freq_to_timerval( 37470),
736 // Code 013 -- Hisense
737 const struct powercode hisenseCode PROGMEM
= {
738 freq_to_timerval( 37520),
789 // Code 014 -- Viewsonic, Acer
790 const struct powercode viewsonicCode PROGMEM
= {
791 freq_to_timerval( 37470),
832 // Code 015 -- Bush, NET-TV
833 const struct powercode bushCode PROGMEM
= {
834 freq_to_timerval( 37470),
875 // Code 016 -- AOC, Daewoo, Goldstar, JC Penney, LG, Memorex, MGA,
876 // Mistubishi, MTC, NEC, Philco, Portland, RCA, Samsung,
877 // Teknika, Vidtech, Wards, Yamaha
878 const struct powercode aocCode PROGMEM
= {
879 freq_to_timerval(33600),
916 // Code 017 -- Bell & Howell, Curtis Mathes, Emerson, Fisher, LXI, Memorex,
917 // Radio Shack, Realistic, Sanyo, Sears, Toshiba
918 const struct powercode bellCode PROGMEM
= {
919 freq_to_timerval(38970),
960 // Code 018 -- Pioneer, Hitachi
961 const struct powercode pioneer2Code PROGMEM
= {
962 freq_to_timerval(37470),
1065 // Code 019 -- Fujitsu
1066 const struct powercode fujitsuCode PROGMEM
= {
1067 freq_to_timerval(37470),
1171 // Code 020 - Gold Star, JC Penney, LXI, Marantz, Memorex, Proton, Pulsar,
1174 const struct powercode goldstarCode PROGMEM
= {
1175 freq_to_timerval(37470),
1217 // Code 021 - Daewoo, Emerson, Hitachi, RCA, White Westinghouse, Zenith
1218 const struct powercode daewooCode PROGMEM
= {
1219 freq_to_timerval(37470),
1262 const struct powercode NECCode PROGMEM
= {
1263 freq_to_timerval(37470),
1306 // Code 023 - Admiral, Bell & Howell, Logik, Majestic, Memorex,
1307 // Montgomery Ward, Signature, Teknika, Wards, Zenith
1308 const struct powercode admiralCode PROGMEM
= {
1309 freq_to_timerval(39010),
1357 const struct powercode sony2Code PROGMEM
= {
1358 freq_to_timerval(37470),
1387 // Code 025 - Viewsonic, Magnavox, NET-TV, Electrograph, Gateway, Maxent,
1390 const struct powercode viewsonic2Code PROGMEM
= {
1391 freq_to_timerval(37470),
1448 // Code 026 - Zenith
1449 const struct powercode zenith2Code PROGMEM
= {
1450 freq_to_timerval(38200),
1488 // Code 027 - Thompson
1489 const struct powercode thompsonCode PROGMEM
= {
1490 freq_to_timerval(55600),
1545 // Code 028 - Brillian, Sears
1546 const struct powercode brillianCode PROGMEM
= {
1547 freq_to_timerval(37430),
1585 // Code 029 - Magnavox
1586 const struct powercode magnavoxCode PROGMEM
= {
1587 freq_to_timerval(34800),
1612 // Code 030 - Viewsonic
1613 const struct powercode viewsonic3Code PROGMEM
= {
1614 freq_to_timerval(37470),
1655 // Code 031 - Crown, Infinity, JBL, Loewe, LXI, Magnavox, Marantz,
1656 // Panaxonic, Philco, Philips, Sylvania, Wards
1657 const struct powercode crownCode PROGMEM
= {
1658 freq_to_timerval(34800),
1685 // Code 032 - Hitachi
1686 const struct powercode hitachi2Code PROGMEM
= {
1687 freq_to_timerval(37470),
1728 // Code 033 - Fujitsu
1729 const struct powercode fujitsu2Code PROGMEM
= {
1730 freq_to_timerval(37470),
1834 // Code 034 - Hitachi
1835 const struct powercode hitachi3Code PROGMEM
= {
1836 freq_to_timerval(37470),
1879 const struct powercode NEC2Code PROGMEM
= {
1880 freq_to_timerval(37470),
1921 // Code 036 - Hitachi
1922 const struct powercode hitachi4Code PROGMEM
= {
1923 freq_to_timerval(40580),
1949 // Code 037 - Anam National, Electrohome, GE, Motorola, NEC, Panasonic,
1950 // Philco, Philips, Quasar, RCA, Tatung
1951 const struct powercode anamCode PROGMEM
= {
1952 freq_to_timerval(36090),
1966 // Code 038 - AOC, NEC
1967 const struct powercode aoc2Code PROGMEM
= {
1968 freq_to_timerval(40580),
1982 // Code 039 - Candle, Citizen, JC Penney, Magnavox, Philco, Philips,
1983 // Simpson, Soundesign, Sylvania, Teknika
1984 const struct powercode candleCode PROGMEM
= {
1985 freq_to_timerval(38970),
2027 // Code 040 - Contec/Cony, Emerson, Goldstar, Hitachi, JVC, Philco,
2028 // Philips, Proton, Radio Shack/Realistic, Samsung, Scott,
2030 const struct powercode contecCode PROGMEM
= {
2031 freq_to_timerval(54070),
2039 // Code 041 - Contec/Cony, Hitachi, JC Penney, JVC, Sears, Teknika
2040 const struct powercode contec2Code PROGMEM
= {
2041 freq_to_timerval(38970),
2054 const struct powercode sony3Code PROGMEM
= {
2055 freq_to_timerval(74940),
2085 // Code 043 - Alleron, Emerson, Fujitsu, Funai, Grunpy, Scott, Sears,
2086 // Soundesign, Teknika, Wards
2088 const struct powercode alleronCode PROGMEM
= {
2089 freq_to_timerval(38970),
2131 // Code 044 - Contec/Cony, Hitachi, JVC, Sears, Teknika
2133 const struct powercode contec3Code PROGMEM
= {
2134 freq_to_timerval(39010),
2163 // Code 045 - Curtis Mathes, Samsung
2164 const struct powercode curtisCode PROGMEM = {
2165 freq_to_timerval(38970),
2207 // Code 046 - Aiko, Citizen, Daewoo, Nikko, NTC, Portland, Teknika
2208 const struct powercode aikoCode PROGMEM = {
2209 freq_to_timerval(37470),
2253 // Code 047 - Daewoo
2254 const struct powercode daewoo2Code PROGMEM = {
2255 freq_to_timerval(28670),
2282 // Code 048 - Electrohome, GE, JC Penney, MGA, Mitsubishi
2283 const struct powercode electrohomeCode PROGMEM = {
2284 freq_to_timerval(38970),
2326 // Code 049 - Emerson, Sharp
2327 const struct powercode emersonCode PROGMEM = {
2328 freq_to_timerval(38970),
2371 // Code 050 - Fisher, MGA, Mitsubishi, Sears
2372 const struct powercode fisherCode PROGMEM
= {
2373 freq_to_timerval(44330),
2389 // Code 051 - Amplivision, Atlantic, Clatronic, Condor, Desnet, Formenti,
2390 // Hanseatic, Korting, Manesth, NEC, Orion, Otto Versand,
2391 // Pathe Cinema, Perdio, Phoenix, Sogera, Soundwave, Standard,
2392 // Technema, Telemeister, Televideon, Tensai, Tenson, Uher,
2393 // Videotechnic, Vision, Watson, Weltblick, White Westinghouse
2395 const struct powercode amplivisionCode PROGMEM = {
2396 freq_to_timerval(8860),
2412 // Code 052 - GE, JC Penney, JVC, Midland, Panasonic, Prism, Quasar,
2413 // Techics, Techwood
2414 const struct powercode geCode PROGMEM = {
2415 freq_to_timerval(54160),
2468 const struct powercode jvc2Code PROGMEM = {
2469 freq_to_timerval(38970),
2512 const struct powercode jvc3Code PROGMEM = {
2513 freq_to_timerval(38970),
2555 // Code 055 - Kloss Novabeam, Magnavox, Philco, Philips, Sylvania, Wards
2556 const struct powercode klossCode PROGMEM = {
2557 freq_to_timerval(54070),
2593 const PGM_P
*powerCodes
[] PROGMEM
= {
2594 &sonyCode
, &rcaCode
, &panasonicCode
, &sharpCode
, &toshibaCode
,
2595 &philipsCode
, &samsungCode
,&zenithCode
, &pioneerCode
, &sylvaniaCode
,
2596 &jvcCode
, &hitachiCode
, &sampoCode
, &hisenseCode
, &viewsonicCode
,
2597 &bushCode
, &aocCode
, &bellCode
, &pioneer2Code
, &fujitsuCode
,
2598 &goldstarCode
, &daewooCode
, &NECCode
, &admiralCode
, &sony2Code
,
2599 &viewsonic2Code
, &zenith2Code
, &thompsonCode
, &brillianCode
, &magnavoxCode
,
2600 &viewsonic3Code
, &crownCode
, &hitachi2Code
, &fujitsu2Code
, &hitachi3Code
,
2601 &NEC2Code
, &hitachi4Code
, &anamCode
, &aoc2Code
, &candleCode
,
2602 &contecCode
, &contec2Code
, &sony3Code
, &alleronCode
, &contec3Code
,
2607 uint8_t num_codes
= (sizeof(powerCodes
)/sizeof(*powerCodes
));