/********************************************************************* デザインウェーブマガジン ADuC7026ボード 任意分解能を持つパルス密度変調型D/A By KEIL uVISION3 ***********************************************************************/ #include // ADuC7026 レジスタ定義ファイル // 通常のD/A(12bit)で出力するためのサイン波データ[ステップ数512] unsigned int wave0[512] = { 0x04000000,0x040C8DC5,0x04191B0E,0x0425A75F,0x0432323C,0x043EBB2A,0x044B41AD,0x0457C549, 0x04644583,0x0470C1E0,0x047D39E3,0x0489AD13,0x04961AF3,0x04A2830B,0x04AEE4DE,0x04BB3FF3, 0x04C793D0,0x04D3DFFC,0x04E023FC,0x04EC5F59,0x04F89198,0x0504BA42,0x0510D8DF,0x051CECF7, 0x0528F613,0x0534F3BC,0x0540E57C,0x054CCADD,0x0558A369,0x05646EAC,0x05702C31,0x057BDB84, 0x05877C33,0x05930DCA,0x059E8FD6,0x05AA01E8,0x05B5638C,0x05C0B454,0x05CBF3D0,0x05D72190, 0x05E23D26,0x05ED4625,0x05F83C1F,0x06031EA9,0x060DED57,0x0618A7BE,0x06234D75,0x062DDE12, 0x0638592D,0x0642BE5F,0x064D0D41,0x0657456E,0x06616680,0x066B7013,0x067561C5,0x067F3B34, 0x0688FBFD,0x0692A3C1,0x069C3221,0x06A5A6BE,0x06AF013B,0x06B8413C,0x06C16665,0x06CA705C, 0x06D35EC8,0x06DC3150,0x06E4E79F,0x06ED815D,0x06F5FE35,0x06FE5DD5,0x07069FE9,0x070EC420, 0x0716CA29,0x071EB1B6,0x07267A78,0x072E2423,0x0735AE6A,0x073D1904,0x074463A7,0x074B8E0B, 0x075297EA,0x075980FE,0x07604903,0x0766EFB5,0x076D74D5,0x0773D820,0x077A1958,0x0780383F, 0x07863499,0x078C0E2A,0x0791C4BA,0x0797580F,0x079CC7F3,0x07A2142F,0x07A73C91,0x07AC40E3, 0x07B120F7,0x07B5DC9A,0x07BA739E,0x07BEE5D7,0x07C33318,0x07C75B36,0x07CB5E09,0x07CF3B6A, 0x07D2F331,0x07D6853A,0x07D9F163,0x07DD3789,0x07E0578B,0x07E3514C,0x07E624AE,0x07E8D194, 0x07EB57E5,0x07EDB788,0x07EFF064,0x07F20265,0x07F3ED75,0x07F5B182,0x07F74E7B,0x07F8C44F, 0x07FA12F0,0x07FB3A51,0x07FC3A67,0x07FD1328,0x07FDC48B,0x07FE4E8A,0x07FEB120,0x07FEEC48, 0x07FF0000,0x07FEEC48,0x07FEB120,0x07FE4E8A,0x07FDC48B,0x07FD1328,0x07FC3A67,0x07FB3A51, 0x07FA12F0,0x07F8C44F,0x07F74E7B,0x07F5B182,0x07F3ED75,0x07F20265,0x07EFF064,0x07EDB788, 0x07EB57E5,0x07E8D194,0x07E624AE,0x07E3514C,0x07E0578B,0x07DD3789,0x07D9F163,0x07D6853A, 0x07D2F331,0x07CF3B6A,0x07CB5E09,0x07C75B36,0x07C33318,0x07BEE5D7,0x07BA739E,0x07B5DC9A, 0x07B120F7,0x07AC40E3,0x07A73C91,0x07A2142F,0x079CC7F3,0x0797580F,0x0791C4BA,0x078C0E2A, 0x07863499,0x0780383F,0x077A1958,0x0773D820,0x076D74D5,0x0766EFB5,0x07604903,0x075980FE, 0x075297EA,0x074B8E0B,0x074463A7,0x073D1904,0x0735AE6A,0x072E2423,0x07267A78,0x071EB1B6, 0x0716CA29,0x070EC420,0x07069FE9,0x06FE5DD5,0x06F5FE35,0x06ED815D,0x06E4E79F,0x06DC3150, 0x06D35EC8,0x06CA705C,0x06C16665,0x06B8413C,0x06AF013B,0x06A5A6BE,0x069C3221,0x0692A3C1, 0x0688FBFD,0x067F3B34,0x067561C5,0x066B7013,0x06616680,0x0657456E,0x064D0D41,0x0642BE5F, 0x0638592D,0x062DDE12,0x06234D75,0x0618A7BE,0x060DED57,0x06031EA9,0x05F83C1F,0x05ED4625, 0x05E23D26,0x05D72190,0x05CBF3D0,0x05C0B454,0x05B5638C,0x05AA01E8,0x059E8FD6,0x05930DCA, 0x05877C33,0x057BDB84,0x05702C31,0x05646EAC,0x0558A369,0x054CCADD,0x0540E57C,0x0534F3BC, 0x0528F613,0x051CECF7,0x0510D8DF,0x0504BA42,0x04F89198,0x04EC5F59,0x04E023FC,0x04D3DFFC, 0x04C793D0,0x04BB3FF3,0x04AEE4DE,0x04A2830B,0x04961AF3,0x0489AD13,0x047D39E3,0x0470C1E0, 0x04644583,0x0457C549,0x044B41AD,0x043EBB2A,0x0432323C,0x0425A75F,0x04191B0E,0x040C8DC5, 0x04000000,0x03F3723B,0x03E6E4F2,0x03DA58A1,0x03CDCDC4,0x03C144D6,0x03B4BE53,0x03A83AB7, 0x039BBA7D,0x038F3E20,0x0382C61D,0x037652ED,0x0369E50D,0x035D7CF5,0x03511B22,0x0344C00D, 0x03386C30,0x032C2004,0x031FDC04,0x0313A0A7,0x03076E68,0x02FB45BE,0x02EF2721,0x02E31309, 0x02D709ED,0x02CB0C44,0x02BF1A84,0x02B33523,0x02A75C97,0x029B9154,0x028FD3CF,0x0284247C, 0x027883CD,0x026CF236,0x0261702A,0x0255FE18,0x024A9C74,0x023F4BAC,0x02340C30,0x0228DE70, 0x021DC2DA,0x0212B9DB,0x0207C3E1,0x01FCE157,0x01F212A9,0x01E75842,0x01DCB28B,0x01D221EE, 0x01C7A6D3,0x01BD41A1,0x01B2F2BF,0x01A8BA92,0x019E9980,0x01948FED,0x018A9E3B,0x0180C4CC, 0x01770403,0x016D5C3F,0x0163CDDF,0x015A5942,0x0150FEC5,0x0147BEC4,0x013E999B,0x01358FA4, 0x012CA138,0x0123CEB0,0x011B1861,0x01127EA3,0x010A01CB,0x0101A22B,0x00F96017,0x00F13BE0, 0x00E935D7,0x00E14E4A,0x00D98588,0x00D1DBDD,0x00CA5196,0x00C2E6FC,0x00BB9C59,0x00B471F5, 0x00AD6816,0x00A67F02,0x009FB6FD,0x0099104B,0x00928B2B,0x008C27E0,0x0085E6A8,0x007FC7C1, 0x0079CB67,0x0073F1D6,0x006E3B46,0x0068A7F1,0x0063380D,0x005DEBD1,0x0058C36F,0x0053BF1D, 0x004EDF09,0x004A2366,0x00458C62,0x00411A29,0x003CCCE8,0x0038A4CA,0x0034A1F7,0x0030C496, 0x002D0CCF,0x00297AC6,0x00260E9D,0x0022C877,0x001FA875,0x001CAEB4,0x0019DB52,0x00172E6C, 0x0014A81B,0x00124878,0x00100F9C,0x000DFD9B,0x000C128B,0x000A4E7E,0x0008B185,0x00073BB1, 0x0005ED10,0x0004C5AF,0x0003C599,0x0002ECD8,0x00023B75,0x0001B176,0x00014EE0,0x000113B8, 0x00010000,0x000113B8,0x00014EE0,0x0001B176,0x00023B75,0x0002ECD8,0x0003C599,0x0004C5AF, 0x0005ED10,0x00073BB1,0x0008B185,0x000A4E7E,0x000C128B,0x000DFD9B,0x00100F9C,0x00124878, 0x0014A81B,0x00172E6C,0x0019DB52,0x001CAEB4,0x001FA875,0x0022C877,0x00260E9D,0x00297AC6, 0x002D0CCF,0x0030C496,0x0034A1F7,0x0038A4CA,0x003CCCE8,0x00411A29,0x00458C62,0x004A2366, 0x004EDF09,0x0053BF1D,0x0058C36F,0x005DEBD1,0x0063380D,0x0068A7F1,0x006E3B46,0x0073F1D6, 0x0079CB67,0x007FC7C1,0x0085E6A8,0x008C27E0,0x00928B2B,0x0099104B,0x009FB6FD,0x00A67F02, 0x00AD6816,0x00B471F5,0x00BB9C59,0x00C2E6FC,0x00CA5196,0x00D1DBDD,0x00D98588,0x00E14E4A, 0x00E935D7,0x00F13BE0,0x00F96017,0x0101A22B,0x010A01CB,0x01127EA3,0x011B1861,0x0123CEB0, 0x012CA138,0x01358FA4,0x013E999B,0x0147BEC4,0x0150FEC5,0x015A5942,0x0163CDDF,0x016D5C3F, 0x01770403,0x0180C4CC,0x018A9E3B,0x01948FED,0x019E9980,0x01A8BA92,0x01B2F2BF,0x01BD41A1, 0x01C7A6D3,0x01D221EE,0x01DCB28B,0x01E75842,0x01F212A9,0x01FCE157,0x0207C3E1,0x0212B9DB, 0x021DC2DA,0x0228DE70,0x02340C30,0x023F4BAC,0x024A9C74,0x0255FE18,0x0261702A,0x026CF236, 0x027883CD,0x0284247C,0x028FD3CF,0x029B9154,0x02A75C97,0x02B33523,0x02BF1A84,0x02CB0C44, 0x02D709ED,0x02E31309,0x02EF2721,0x02FB45BE,0x03076E68,0x0313A0A7,0x031FDC04,0x032C2004, 0x03386C30,0x0344C00D,0x03511B22,0x035D7CF5,0x0369E50D,0x037652ED,0x0382C61D,0x038F3E20, 0x039BBA7D,0x03A83AB7,0x03B4BE53,0x03C144D6,0x03CDCDC4,0x03DA58A1,0x03E6E4F2,0x03F3723B }; unsigned int wave1[512] = { 0x0775F1A9,0x076F99B3,0x07691FD3,0x0762844B,0x075BC75A,0x0754E943,0x074DEA4B,0x0746CAB6, 0x073F8ACB,0x07382AD1,0x0730AB10,0x07290BD4,0x07214D66,0x07197015,0x0711742C,0x070959FB, 0x070121D3,0x06F8CC03,0x06F058DF,0x06E7C8B9,0x06DF1BE7,0x06D652BE,0x06CD6D94,0x06C46CC1, 0x06BB509F,0x06B21987,0x06A8C7D4,0x069F5BE2,0x0695D60E,0x068C36B6,0x06827E39,0x0678ACF6, 0x066EC350,0x0664C1A8,0x065AA85F,0x065077DB,0x06463080,0x063BD2B2,0x06315ED9,0x0626D55C, 0x061C36A2,0x06118315,0x0606BB1D,0x05FBDF26,0x05F0EF9B,0x05E5ECE7,0x05DAD777,0x05CFAFB8, 0x05C4761A,0x05B92B0A,0x05ADCEF7,0x05A26253,0x0596E58D,0x058B5918,0x057FBD65,0x057412E6, 0x05685A10,0x055C9354,0x0550BF29,0x0544DE02,0x0538F055,0x052CF697,0x0520F13F,0x0514E0C3, 0x0508C59A,0x04FCA03C,0x04F07121,0x04E438C1,0x04D7F795,0x04CBAE15,0x04BF5CBB,0x04B30400, 0x04A6A45F,0x049A3E50,0x048DD250,0x048160D8,0x0474EA62,0x04686F6B,0x045BF06E,0x044F6DE5, 0x0442E84B,0x0436601E,0x0429D5D8,0x041D49F5,0x0410BCF1,0x04042F48,0x03F7A175,0x03EB13F5, 0x03DE8744,0x03D1FBDD,0x03C5723C,0x03B8EADD,0x03AC663B,0x039FE4D3,0x0393671F,0x0386ED9B, 0x037A78C2,0x036E090E,0x03619EFC,0x03553B04,0x0348DDA2,0x033C874F,0x03303886,0x0323F1BF, 0x0317B374,0x030B7E1D,0x02FF5234,0x02F33030,0x02E71889,0x02DB0BB7,0x02CF0A2F,0x02C3146A, 0x02B72ADC,0x02AB4DFC,0x029F7E3F,0x0293BC18,0x028807FD,0x027C6260,0x0270CBB4,0x0265446D, 0x0259CCFB,0x024E65D0,0x02430F5D,0x0237CA11,0x022C965C,0x022174AB,0x0216656E,0x020B6911, 0x02008000,0x01F5AAA8,0x01EAE972,0x01E03CCA,0x01D5A519,0x01CB22C7,0x01C0B63C,0x01B65FDE, 0x01AC2015,0x01A1F744,0x0197E5D1,0x018DEC1E,0x01840A8E,0x017A4183,0x0170915D,0x0166FA7C, 0x015D7D3E,0x01541A02,0x014AD123,0x0141A2FD,0x01388FEB,0x012F9847,0x0126BC69,0x011DFCA8, 0x0115595C,0x010CD2D8,0x01046971,0x00FC1D7B,0x00F3EF47,0x00EBDF25,0x00E3ED66,0x00DC1A58, 0x00D46648,0x00CCD182,0x00C55C51,0x00BE06FE,0x00B6D1D2,0x00AFBD14,0x00A8C90A,0x00A1F5F9, 0x009B4424,0x0094B3CC,0x008E4533,0x0087F899,0x0081CE3B,0x007BC656,0x0075E125,0x00701EE4, 0x006A7FCB,0x00650410,0x005FABEC,0x005A7791,0x00556734,0x00507B06,0x004BB338,0x00470FF9, 0x00429178,0x003E37E0,0x003A035C,0x0035F416,0x00320A36,0x002E45E2,0x002AA740,0x00272E73, 0x0023DB9E,0x0020AEE1,0x001DA85D,0x001AC82D,0x00180E70,0x00157B40,0x00130EB6,0x0010C8EA, 0x000EA9F3,0x000CB1E6,0x000AE0D6,0x000936D5,0x0007B3F3,0x0006583F,0x000523C7,0x00041697, 0x000330B9,0x00027236,0x0001DB14,0x00016B5B,0x0001230F,0x00010231,0x000108C4,0x000136C7, 0x00018C38,0x00020914,0x0002AD57,0x000378F9,0x00046BF4,0x0005863D,0x0006C7CA,0x0008308F, 0x0009C07D,0x000B7785,0x000D5597,0x000F5A9F,0x0011868A,0x0013D942,0x001652B1,0x0018F2BD, 0x001BB94E,0x001EA648,0x0021B98D,0x0024F300,0x00285281,0x002BD7EE,0x002F8325,0x00335401, 0x00374A5D,0x003B6611,0x003FA6F6,0x00440CE1,0x004897A6,0x004D471A,0x00521B0D,0x00571350, 0x005C2FB2,0x00617000,0x0066D408,0x006C5B92,0x0072066A,0x0077D457,0x007DC51F,0x0083D888, 0x008A0E57,0x0090664D,0x0096E02D,0x009D7BB5,0x00A438A6,0x00AB16BD,0x00B215B5,0x00B9354A, 0x00C07535,0x00C7D52F,0x00CF54F0,0x00D6F42C,0x00DEB29A,0x00E68FEB,0x00EE8BD4,0x00F6A605, 0x00FEDE2D,0x010733FD,0x010FA721,0x01183747,0x0120E419,0x0129AD42,0x0132926C,0x013B933F, 0x0144AF61,0x014DE679,0x0157382C,0x0160A41E,0x016A29F2,0x0173C94A,0x017D81C7,0x0187530A, 0x01913CB0,0x019B3E58,0x01A557A1,0x01AF8825,0x01B9CF80,0x01C42D4E,0x01CEA127,0x01D92AA4, 0x01E3C95E,0x01EE7CEB,0x01F944E3,0x020420DA,0x020F1065,0x021A1319,0x02252889,0x02305048, 0x023B89E6,0x0246D4F6,0x02523109,0x025D9DAD,0x02691A73,0x0274A6E8,0x0280429B,0x028BED1A, 0x0297A5F0,0x02A36CAC,0x02AF40D7,0x02BB21FE,0x02C70FAB,0x02D30969,0x02DF0EC1,0x02EB1F3D, 0x02F73A66,0x03035FC4,0x030F8EDF,0x031BC73F,0x0328086B,0x033451EB,0x0340A345,0x034CFC00, 0x03595BA1,0x0365C1B0,0x03722DB0,0x037E9F28,0x038B159E,0x03979095,0x03A40F92,0x03B0921B, 0x03BD17B5,0x03C99FE2,0x03D62A28,0x03E2B60B,0x03EF430F,0x03FBD0B8,0x04085E8B,0x0414EC0B, 0x042178BC,0x042E0423,0x043A8DC4,0x04471523,0x045399C5,0x04601B2D,0x046C98E1,0x04791265, 0x0485873E,0x0491F6F2,0x049E6104,0x04AAC4FC,0x04B7225E,0x04C378B1,0x04CFC77A,0x04DC0E41, 0x04E84C8C,0x04F481E3,0x0500ADCC,0x050CCFD0,0x0518E777,0x0524F449,0x0530F5D1,0x053CEB96, 0x0548D524,0x0554B204,0x056081C1,0x056C43E8,0x0577F803,0x05839DA0,0x058F344C,0x059ABB93, 0x05A63305,0x05B19A30,0x05BCF0A3,0x05C835EF,0x05D369A4,0x05DE8B55,0x05E99A92,0x05F496EF, 0x05FF8000,0x060A5558,0x0615168E,0x061FC336,0x062A5AE7,0x0634DD39,0x063F49C4,0x0649A022, 0x0653DFEB,0x065E08BC,0x06681A2F,0x067213E2,0x067BF572,0x0685BE7D,0x068F6EA3,0x06990584, 0x06A282C2,0x06ABE5FE,0x06B52EDD,0x06BE5D03,0x06C77015,0x06D067B9,0x06D94397,0x06E20358, 0x06EAA6A4,0x06F32D28,0x06FB968F,0x0703E285,0x070C10B9,0x071420DB,0x071C129A,0x0723E5A8, 0x072B99B8,0x07332E7E,0x073AA3AF,0x0741F902,0x07492E2E,0x075042EC,0x075736F6,0x075E0A07, 0x0764BBDC,0x076B4C34,0x0771BACD,0x07780767,0x077E31C5,0x078439AA,0x078A1EDB,0x078FE11C, 0x07958035,0x079AFBF0,0x07A05414,0x07A5886F,0x07AA98CC,0x07AF84FA,0x07B44CC8,0x07B8F007, 0x07BD6E88,0x07C1C820,0x07C5FCA4,0x07CA0BEA,0x07CDF5CA,0x07D1BA1E,0x07D558C0,0x07D8D18D, 0x07DC2462,0x07DF511F,0x07E257A3,0x07E537D3,0x07E7F190,0x07EA84C0,0x07ECF14A,0x07EF3716, 0x07F1560D,0x07F34E1A,0x07F51F2A,0x07F6C92B,0x07F84C0D,0x07F9A7C1,0x07FADC39,0x07FBE969, 0x07FCCF47,0x07FD8DCA,0x07FE24EC,0x07FE94A5,0x07FEDCF1,0x07FEFDCF,0x07FEF73C,0x07FEC939, 0x07FE73C8,0x07FDF6EC,0x07FD52A9,0x07FC8707,0x07FB940C,0x07FA79C3,0x07F93836,0x07F7CF71, 0x07F63F83,0x07F4887B,0x07F2AA69,0x07F0A561,0x07EE7976,0x07EC26BE,0x07E9AD4F,0x07E70D43, 0x07E446B2,0x07E159B8,0x07DE4673,0x07DB0D00,0x07D7AD7F,0x07D42812,0x07D07CDB,0x07CCABFF, 0x07C8B5A3,0x07C499EF,0x07C0590A,0x07BBF31F,0x07B7685A,0x07B2B8E6,0x07ADE4F3,0x07A8ECB0, 0x07A3D04E,0x079E9000,0x07992BF8,0x0793A46E,0x078DF996,0x07882BA9,0x07823AE1,0x077C2778 }; unsigned int wave2[512] = { 0x008A0E57,0x0083D888,0x007DC51F,0x0077D457,0x0072066A,0x006C5B92,0x0066D408,0x00617000, 0x005C2FB2,0x00571350,0x00521B0D,0x004D471A,0x004897A6,0x00440CE1,0x003FA6F6,0x003B6611, 0x00374A5D,0x00335401,0x002F8325,0x002BD7EE,0x00285281,0x0024F300,0x0021B98D,0x001EA648, 0x001BB94E,0x0018F2BD,0x001652B1,0x0013D942,0x0011868A,0x000F5A9F,0x000D5597,0x000B7785, 0x0009C07D,0x0008308F,0x0006C7CA,0x0005863D,0x00046BF4,0x000378F9,0x0002AD57,0x00020914, 0x00018C38,0x000136C7,0x000108C4,0x00010231,0x0001230F,0x00016B5B,0x0001DB14,0x00027236, 0x000330B9,0x00041697,0x000523C7,0x0006583F,0x0007B3F3,0x000936D5,0x000AE0D6,0x000CB1E6, 0x000EA9F3,0x0010C8EA,0x00130EB6,0x00157B40,0x00180E70,0x001AC82D,0x001DA85D,0x0020AEE1, 0x0023DB9E,0x00272E73,0x002AA740,0x002E45E2,0x00320A36,0x0035F416,0x003A035C,0x003E37E0, 0x00429178,0x00470FF9,0x004BB338,0x00507B06,0x00556734,0x005A7791,0x005FABEC,0x00650410, 0x006A7FCB,0x00701EE4,0x0075E125,0x007BC656,0x0081CE3B,0x0087F899,0x008E4533,0x0094B3CC, 0x009B4424,0x00A1F5F9,0x00A8C90A,0x00AFBD14,0x00B6D1D2,0x00BE06FE,0x00C55C51,0x00CCD182, 0x00D46648,0x00DC1A58,0x00E3ED66,0x00EBDF25,0x00F3EF47,0x00FC1D7B,0x01046971,0x010CD2D8, 0x0115595C,0x011DFCA8,0x0126BC69,0x012F9847,0x01388FEB,0x0141A2FD,0x014AD123,0x01541A02, 0x015D7D3E,0x0166FA7C,0x0170915D,0x017A4183,0x01840A8E,0x018DEC1E,0x0197E5D1,0x01A1F744, 0x01AC2015,0x01B65FDE,0x01C0B63C,0x01CB22C7,0x01D5A519,0x01E03CCA,0x01EAE972,0x01F5AAA8, 0x02008000,0x020B6911,0x0216656E,0x022174AB,0x022C965C,0x0237CA11,0x02430F5D,0x024E65D0, 0x0259CCFB,0x0265446D,0x0270CBB4,0x027C6260,0x028807FD,0x0293BC18,0x029F7E3F,0x02AB4DFC, 0x02B72ADC,0x02C3146A,0x02CF0A2F,0x02DB0BB7,0x02E71889,0x02F33030,0x02FF5234,0x030B7E1D, 0x0317B374,0x0323F1BF,0x03303886,0x033C874F,0x0348DDA2,0x03553B04,0x03619EFC,0x036E090E, 0x037A78C2,0x0386ED9B,0x0393671F,0x039FE4D3,0x03AC663B,0x03B8EADD,0x03C5723C,0x03D1FBDD, 0x03DE8744,0x03EB13F5,0x03F7A175,0x04042F48,0x0410BCF1,0x041D49F5,0x0429D5D8,0x0436601E, 0x0442E84B,0x044F6DE5,0x045BF06E,0x04686F6B,0x0474EA62,0x048160D8,0x048DD250,0x049A3E50, 0x04A6A45F,0x04B30400,0x04BF5CBB,0x04CBAE15,0x04D7F795,0x04E438C1,0x04F07121,0x04FCA03C, 0x0508C59A,0x0514E0C3,0x0520F13F,0x052CF697,0x0538F055,0x0544DE02,0x0550BF29,0x055C9354, 0x05685A10,0x057412E6,0x057FBD65,0x058B5918,0x0596E58D,0x05A26253,0x05ADCEF7,0x05B92B0A, 0x05C4761A,0x05CFAFB8,0x05DAD777,0x05E5ECE7,0x05F0EF9B,0x05FBDF26,0x0606BB1D,0x06118315, 0x061C36A2,0x0626D55C,0x06315ED9,0x063BD2B2,0x06463080,0x065077DB,0x065AA85F,0x0664C1A8, 0x066EC350,0x0678ACF6,0x06827E39,0x068C36B6,0x0695D60E,0x069F5BE2,0x06A8C7D4,0x06B21987, 0x06BB509F,0x06C46CC1,0x06CD6D94,0x06D652BE,0x06DF1BE7,0x06E7C8B9,0x06F058DF,0x06F8CC03, 0x070121D3,0x070959FB,0x0711742C,0x07197015,0x07214D66,0x07290BD4,0x0730AB10,0x07382AD1, 0x073F8ACB,0x0746CAB6,0x074DEA4B,0x0754E943,0x075BC75A,0x0762844B,0x07691FD3,0x076F99B3, 0x0775F1A9,0x077C2778,0x07823AE1,0x07882BA9,0x078DF996,0x0793A46E,0x07992BF8,0x079E9000, 0x07A3D04E,0x07A8ECB0,0x07ADE4F3,0x07B2B8E6,0x07B7685A,0x07BBF31F,0x07C0590A,0x07C499EF, 0x07C8B5A3,0x07CCABFF,0x07D07CDB,0x07D42812,0x07D7AD7F,0x07DB0D00,0x07DE4673,0x07E159B8, 0x07E446B2,0x07E70D43,0x07E9AD4F,0x07EC26BE,0x07EE7976,0x07F0A561,0x07F2AA69,0x07F4887B, 0x07F63F83,0x07F7CF71,0x07F93836,0x07FA79C3,0x07FB940C,0x07FC8707,0x07FD52A9,0x07FDF6EC, 0x07FE73C8,0x07FEC939,0x07FEF73C,0x07FEFDCF,0x07FEDCF1,0x07FE94A5,0x07FE24EC,0x07FD8DCA, 0x07FCCF47,0x07FBE969,0x07FADC39,0x07F9A7C1,0x07F84C0D,0x07F6C92B,0x07F51F2A,0x07F34E1A, 0x07F1560D,0x07EF3716,0x07ECF14A,0x07EA84C0,0x07E7F190,0x07E537D3,0x07E257A3,0x07DF511F, 0x07DC2462,0x07D8D18D,0x07D558C0,0x07D1BA1E,0x07CDF5CA,0x07CA0BEA,0x07C5FCA4,0x07C1C820, 0x07BD6E88,0x07B8F007,0x07B44CC8,0x07AF84FA,0x07AA98CC,0x07A5886F,0x07A05414,0x079AFBF0, 0x07958035,0x078FE11C,0x078A1EDB,0x078439AA,0x077E31C5,0x07780767,0x0771BACD,0x076B4C34, 0x0764BBDC,0x075E0A07,0x075736F6,0x075042EC,0x07492E2E,0x0741F902,0x073AA3AF,0x07332E7E, 0x072B99B8,0x0723E5A8,0x071C129A,0x071420DB,0x070C10B9,0x0703E285,0x06FB968F,0x06F32D28, 0x06EAA6A4,0x06E20358,0x06D94397,0x06D067B9,0x06C77015,0x06BE5D03,0x06B52EDD,0x06ABE5FE, 0x06A282C2,0x06990584,0x068F6EA3,0x0685BE7D,0x067BF572,0x067213E2,0x06681A2F,0x065E08BC, 0x0653DFEB,0x0649A022,0x063F49C4,0x0634DD39,0x062A5AE7,0x061FC336,0x0615168E,0x060A5558, 0x05FF8000,0x05F496EF,0x05E99A92,0x05DE8B55,0x05D369A4,0x05C835EF,0x05BCF0A3,0x05B19A30, 0x05A63305,0x059ABB93,0x058F344C,0x05839DA0,0x0577F803,0x056C43E8,0x056081C1,0x0554B204, 0x0548D524,0x053CEB96,0x0530F5D1,0x0524F449,0x0518E777,0x050CCFD0,0x0500ADCC,0x04F481E3, 0x04E84C8C,0x04DC0E41,0x04CFC77A,0x04C378B1,0x04B7225E,0x04AAC4FC,0x049E6104,0x0491F6F2, 0x0485873E,0x04791265,0x046C98E1,0x04601B2D,0x045399C5,0x04471523,0x043A8DC4,0x042E0423, 0x042178BC,0x0414EC0B,0x04085E8B,0x03FBD0B8,0x03EF430F,0x03E2B60B,0x03D62A28,0x03C99FE2, 0x03BD17B5,0x03B0921B,0x03A40F92,0x03979095,0x038B159E,0x037E9F28,0x03722DB0,0x0365C1B0, 0x03595BA1,0x034CFC00,0x0340A345,0x033451EB,0x0328086B,0x031BC73F,0x030F8EDF,0x03035FC4, 0x02F73A66,0x02EB1F3D,0x02DF0EC1,0x02D30969,0x02C70FAB,0x02BB21FE,0x02AF40D7,0x02A36CAC, 0x0297A5F0,0x028BED1A,0x0280429B,0x0274A6E8,0x02691A73,0x025D9DAD,0x02523109,0x0246D4F6, 0x023B89E6,0x02305048,0x02252889,0x021A1319,0x020F1065,0x020420DA,0x01F944E3,0x01EE7CEB, 0x01E3C95E,0x01D92AA4,0x01CEA127,0x01C42D4E,0x01B9CF80,0x01AF8825,0x01A557A1,0x019B3E58, 0x01913CB0,0x0187530A,0x017D81C7,0x0173C94A,0x016A29F2,0x0160A41E,0x0157382C,0x014DE679, 0x0144AF61,0x013B933F,0x0132926C,0x0129AD42,0x0120E419,0x01183747,0x010FA721,0x010733FD, 0x00FEDE2D,0x00F6A605,0x00EE8BD4,0x00E68FEB,0x00DEB29A,0x00D6F42C,0x00CF54F0,0x00C7D52F, 0x00C07535,0x00B9354A,0x00B215B5,0x00AB16BD,0x00A438A6,0x009D7BB5,0x0096E02D,0x0090664D }; unsigned int vMax, vOFS; // PDM型D/Aの最大値と出力オフセット unsigned int vMax0,vMax1,vMax2; // PDM型D/Aの最大値(D/Aの出力範囲は0からvMax*まで) unsigned int vSum0,vSum1,vSum2; // PDM型D/Aの累積加算値 unsigned int vDA0, vDA1, vDA2; // PDM型D/Aの出力値 unsigned int PortData; int flagIRQ; // タイマー割込み0が発生したことを示すフラグ(1:発生) double frequency; // 周波数 int delt; // 増分レジスタ(周波数に関係する) int phase; // 位相レジスタ void IRQ_Handler(void) __irq{ flagIRQ = 1; // タイマー割込み0の発生をセットする T0CLRI = 1; // ADuC7026のハードウェア割込みフラグをクリアし、次のタイマー割込みを許可。 } int main (void){ int i; // 配列引数 flagIRQ = 0; T0LD = 42*15; T0CON = 0xC0; /* タイマー割込み関連初期化 */ /* 210 */ PLLKEY1 = 0xAA; PLLCON = 33; PLLKEY2 = 0x55; /* bit5:OSEL=1, bit1_0:MDCLK=01 */ POWKEY1 = 0x01; POWCON = 0; POWKEY2 = 0xF4; /* PC=active, CD=41.78MHz */ PortData = 0xFF000000; GP4CON=0x00000000; GP4DAT=PortData; /* 汎用I/O[GP4]の全てのビットはディジタル出力 */ DAC0CON = 19; DAC0DAT=0x0400FFFF; // 内蔵DAC0で中央値を出力 bit5:DACCLK=0,bit4:DACCLR=1,bit1_0:DAC_range11 DAC1CON = 19; DAC1DAT=0x0400FFFF; // 内蔵DAC1で中央値を出力 bit5:DACCLK=0,bit4:DACCLR=1,bit1_0:DAC_range11 DAC2CON = 19; DAC2DAT=0x0400FFFF; // 内蔵DAC2で中央値を出力 bit5:DACCLK=0,bit4:DACCLR=1,bit1_0:DAC_range11 // PDM型D/Aの初期化処理 // vMax=0x20000000; vOFS=0x08000000; // vMax=0x20000000; vOFS=0x08000000; vMax=0x10000000; vOFS=0x04000000; vMax0=vMax; vSum0=0; vDA0=0; vMax1=vMax; vSum1=0; vDA1=0; vMax2=vMax; vSum2=0; vDA2=0; // DDSの初期化処理 phase=0; // 位相レジスタを0クリアする。 frequency = 30.0; // ここで指定した周波数[Hz]が出力される。 // 増分値 = (CPUのクロック*位相レジスタ最大値) ÷(周波数 * タイマー割込み周期カウント値) delt = (int)( (double)(0x1FFFFFF) *(double)(42*15)*frequency / (double)(41780000.0) ); IRQEN = 0x00000004; /* Timer0割込み許可 */ while(1) { if (flagIRQ==1) // flagIRQが1ならタイマー割込みがあったことを示す { //GP4SET = 0x00800000; // 一連の処理時間計測用 ここから⇒ phase = (phase + delt) & 0x1FFFFFF; // 位相レジスタを更新 (wave[512]用) i=(phase >> 16); // phaseレジスタの有効ビット(Xの部分)を取り出す 0000000XXXXXXXXX****************B vDA0 = wave0[i]; vDA1 = wave1[i]; vDA2 = wave2[i]; DAC0DAT = vDA0; DAC1DAT = vDA1; DAC2DAT = vDA2; // LED(bit7)とbit6に関してはbit0と同じ波形を出力 vSum0 += vDA0 + vOFS; vSum1 += vDA1 + vOFS; vSum2 += vDA2 + vOFS; PortData=0xFF000000; if ( vSum0 > vMax0 ) { PortData |= 0x00C10000; vSum0-=vMax0; } else PortData |= 0x00080000; if ( vSum1 > vMax1 ) { PortData |= 0x00100000; vSum1-=vMax1; } else PortData |= 0x00020000; if ( vSum2 > vMax2 ) { PortData |= 0x00200000; vSum2-=vMax2; } else PortData |= 0x00040000; // if ( vSum1 > vMax1 ) { PortData |= 0x00020000; vSum1-=vMax1; } else PortData |= 0x00100000; // if ( vSum2 > vMax2 ) { PortData |= 0x00040000; vSum2-=vMax2; } else PortData |= 0x00200000; GP4DAT=PortData; flagIRQ = 0; //GP4CLR = 0x00800000; // 一連の処理時間計測用 ⇒ここまで } } }