![]() |
Điều chế Sin
3 Attachment(s)
1). Chương trình bác Nam sửa ở trang 1,#11, mình mô phỏng bằng proteus 7.4, code viết trong CCS 4.0.., kết quả mô phỏng chạy ra đúng như tính toán:
Tpwm=20us --> Fpwm=50KHz Tsin = 16ms --> Fsin=62,5Hz. Trong đó, mình dùng thẳng thạch anh 40MHz để tần số clock=40MHz. Mình gửi kèm file đã làm (tên file: PWM-truonglao.rar). 2). Thế nhưng khi mình điều chế sin Fsin= 50Hz: Chọn: Fpwm=20KHz hay Tpwm=50us, theo cthuc Tpwm=4*(PTPER+1)/Fosc suy ra: PTPER=49. (Thach anh Fosc = 4MHz) Sóng sin có Fsin=50Hz --> so ptu bang sin = Fpwm:Fsin=20000:50=400 phần tử. Như vậy: Tpwm = 50us Tsin = 20ms Nhưng kết quả mô phỏng được: Tpwm=50us ( tức Fpwm=20KHZ -> Fpwm đúng theo tính toán) Tsin = 40ms --> Fsin = 25Hz (--> cái này như vậy là sai mất rồi) Mình gửi kèm file đã làm các bạn xem (20KHzPWM-sin50Hz.rar). 3). Vì theo câu (2), khi mình điều chế Fsin=50Hz mà kết quả ra là 25Hz, nên mình đã đi điều chế Fsin=100Hz xem thử nó có ra tần số 50Hz ko. --> kết quả mô phỏng: điều chế Fsin=100Hz thì kết quả mô phỏng ra là 50Hz. Gửi kèm file (20KHzPWM-sin100Hz.rar). *** Mong các bạn xem và sớm giải thích giùm mình, ngày hnay mất 1 ngày mà vẫn chưa tìm ra cause. // bổ sung thông tin CCS: mình cài CCS trong ổ đĩa G, nên nếu các bạn cài CCS trong ổ C thì phải chọn lại đường dẫn file devices và drivers cho chương trình thì mới complie được đó. |
Bảng sin
2 Attachment(s)
Gửi kèm luôn file excel tính bảng sin.
Bảng sin 200 tuơng ứng Fsin=100Hz ''' 400 ''' Fsin=50Hz |
Ủa sao ko thấy ai nói j zậy ta. Mọi người nghỉ lễ kĩ thế.
|
Pwm
1 Attachment(s)
Thôi ko làm phiền các bác nữa nha. Mình nâng tần số thạch anh trong bài của mình lên 40MHz (bằng bài của anh Nam), đồng thời tính lại bảng sin cho khớp với thạch anh 40MHz này thì kết quả mô phỏng đã đúng rồi. Hi. Nhưng ko hiểu vì sao với thạch anh 4MHz thì kq mô phỏng ko đúng, với thạch anh 40MHz thì lại đúng, mà chắc ko cần quan tâm điều này làm j cho tốn calo. Hi. Sắp tới làm mạch thực rồi kiếm cái oscillo đo xem thế nào.
Chúc cả nhà vui. //PS; nhân tiện cho mình hỏi: trong datasheet 18F4431 (hình dưới) ko đưa ra việc dùng thạch anh 40MHz, ko biết mình lắp mạch với 40MHz có được ko? Trích:
|
Trích:
Thân, |
pwm
2 đoạn mã sau là tuơng đuơng, nhưng khi chạy mạch thật thì không biết vì sao mà đoạn mã tạo PWM (mã 2) lại không làm việc (ko chạy hoặc chạy sai gậy ngắn mạch cầu H), còn mã 1 thì chạy bình thường?
------------Mã 1------------- Code:
#include <18f4331.h> -------------Mã 2( dùng chức năng PWM)------------ Code:
#include <18f4331.h> ------------------ Mong các cao nhân chỉ giùm, em cần gấp lắm. |
Đoạn mã 1 của bạn không thể gọi là PWM đúng nghĩa, không thể hiện được ưu điểm gì của 18F4431, Tôi nghĩ bạn không nên dùng cách này cho các ứng dụng công suất.
Còn đoạn 2 thì...Tôi cũng không biết giải thích thế nào nhưng tôi từng sử dụng CCS như trên và không được, có lẽ do hàm viết sẵn của nó nhiều khi dở hơi mình không kiểm soát được nội dung. Chuyển sang dùng C18 và cấu hình cụ thể đến từng thanh ghi giúp cho chúng ta hiểu vấn đề hơn, kết quả là tôi tạo ra được PWM rất tốt. |
Trích:
|
Bạn xem lại trang 1 có đoạn mã anh Namqn đã cho , có thể chạy trên 18F4431 và tạo được ra sin.
|
bác nào có file HEX của chương trình namqn viết ko,cả mô hình mạch nữa.gửi cho mình với.mình cũng đagn điều chế sóng sin,nhưng dùng dspic và C30.
|
Trích:
|
Trích:
|
Anh namqn ơi. Em chuyển viết chương trình của anh sang CCS thi thay đổi tần số sóng Sin ra được. Anh chọn giá trị đỉnh có dựa trên cơ sở nao không anh hay là tuỳ mình chọn.
|
bác tienminh làm ngon lành rồi thì giời thiệu cho a e đi, e cũng đang rất quan tâm đến vấn đề DC-AC như bác đã nghiên cứu
|
Trích:
Em mới vào diễn đàn thấy các anh bàn luận hay quá. Anh có thể giải thichcs giúp em tại sao a lại chọn giá trị đỉnh là 400 được k? Anh căn cứ vào đâu để chọn như vậy? Cám ơn anh nhiều! |
Trích:
Module PWM của PIC có sự giới hạn đối với duty cycle khá gần 0% và 100%, do đó có thể giảm trị đỉnh xuống vài phần trăm để khắc phục. Thân, |
Trích:
Anh có thể giải thích cụ thể căn cứ chọn đỉnh thông qua code ví dụ a sửa cho bạn tienminh đc k? Giá trị đỉnh của tín hiệu sine ra sau cầu H và giá trị điện áp 1 chiều cấp cho cầu H và bảng sine có quan hệ như thế nào hả a? Em cám ơn anh nhiều! |
Trích:
Code a sửa ở trên có đúng k vậy. Tôi thấy giá trị thanh ghi PTPER = 199 (chính là giá trị duty max) vậy mà bảng sin để cập nhật duty lại có những giá trị lớn hơn 199 rất nhiều là sao? Liệu a Nam có nhầm nhọt k nhỉ:D |
Trích:
Với PIC18, nếu PTPER = 199 thì duty cycle = 100% sẽ ứng với 4*(PTPER + 1) = 4*(199 +1) = 800. Đề nghị bạn đọc lại datasheet của PIC18. Thân, |
Trích:
Giá trị thanh ghi PDC có thể lớn hơn PTPER khi nào? Em thấy nó chỉ lớn hơn đc khi clock của thằng PTMR lớn hơn clock PDC (chẳng hạn PTMR có clock là Tcy thì clock của PDC phải là Tcy/n; n = 2,3...).Đúng k bác Nam? Chứ nếu cả hai thằng đều là Tcy thì k thể có chuyện giá trị thanh ghi PDC lớn hơn PTPER được đâu. |
Trích:
Thân, |
Trích:
Em xin bổ sung thêm là nếu ta chọn chia tần của bộ PWM Time Base là 1:1 thì khi đó độ phân giải của PTMR sẽ là Tcy (Tcy = Fosc/4) còn độ phân giải của PDC sẽ là Tcy/4 (Fosc). Tương tự khi ta chọn chia tần khác đi thì độ phân giải sẽ khác đi nhưng vẫn theo tỷ lệ 1:4. Và lưu ý là điều này chỉ đúng với PIC18 thôi. Đối với dsPIC30 hoặc dsPIC33 thì sẽ khác. Cụ thể các bạn đọc trong datasheet sẽ rõ. |
Luồng này mình thấy rất hay mà sao giờ trầm lắng quá nhỉ? Theo mình thấy code bác Nam viết chỉ enable cho PWM0 và 1, giờ mình muốn enable cho cả PWM2 và 3 nữa để đưa vào cho đủ cầu H thì xử lý trong giải thuật ntn ah? Bác Nam có thể gợi ý thêm giúp e ko? Vì e cũng ko rõ khi đặt enable PWM2, 3 trong PWMCON0 thì thuật toán phía sau xử lý ntn nữa để trong cầu H thì PWM1 và PWM3 đặt vào kênh cao, PWM0 và PWM2 đặt vào kênh thấp, tín hiệu điều biến là PWM1+ tín hiệu bù PWM0 sẽ phải ngược pha so với tín hiệu điều biến PWM3 + tín hiệu bù PWM2 (tín hiệu PWM1 dẫn nửa chu kỳ và PWM3 dẫn nửa chu kỳ còn lại).
|
Trích:
|
Chào các anh !
Bảng sin em lập như hướng dấn của anh Nam, Pic em dùng là 16F886, Fpwm = 20KHz Nhưng không hiểu tại sao không thể chạy đúng Nếu em dùng chương trình này cho Pic18 thì ok Hay có điều gì về PWM của Pic16 mà em chưa đọc kĩ Mong các anh giải thích giùm Đây là chương trình của em : Code:
#include <16f886.h> |
điều chế độ rộng xung ra sin (SPWM)
bạn có thể vào trang này nó sẽ hướng dẫn cụ thể cách lập bảng mã SPWM
http://hoiquandientu.com//read.php?579#entrymore cái này có lâu rồi mà . khi điều khiển cầu H cho nghịch lưu ở điện áp cao bạn nên để ý : và lập trình khéo bạn phải cho khoảng thời gian deadtime vào . còn để làm gì thì bạn chắc hiểu rồi . |
Mình thử xem sao , cảm ơn mọi người nhiều,
|
1 Attachment(s)
các anh ơi giúp em với!em dùng vi điều khiển pic18f4431 để điều khiển cầu nghịch lưu áp làm inverter,khi mô phỏng trên proteus thì ra sóng sine đúng biên độ và tần số nhưng điện áp cứ tăng lên rồi giảm xuống theo chu kỳ?em đã làm mạch và chạy cũng như mô phỏng vậy!các anh xem giúp có phải vì chương trình hay vì phần cứng em có gì sai không?
đây là chương trình và mô phỏng của em! |
- Mấy anh cho em hỏi PTMRL là gì vậy và vì sao phải có điều kiện PTMRL >= 100 hoặc PTMRL >= 50.
PTMRL có phải là byte thấp của PTMR và nó sẽ đếm lên đến khi = PTPER thì reset về 0. - Em mới tìm hiểu về Pwm mong được mọi người chỉ bảo cho. |
xuat 500xung PWM Tpwm=5khz
dear cac bac pro pic18 hien em dang thu lap trinh C18 xuat power PWM Tpwm=5Khz xuat 500 xung thi dung khong xuat nua nhung chua ranh chi lam duoc den day bac chi giup em voi
void Motor_init() { //------------------------ PTCON0: PWM TIMER CONTROL REGISTER 0 -----------------------------// // Postscale: 1:1 PTCON0bits.PTOPS0 = 0; PTCON0bits.PTOPS1 = 0; PTCON0bits.PTOPS2 = 0; PTCON0bits.PTOPS3 = 0; // time base input clock: 1:4 prescale PTCON0bits.PTCKPS0 = 0; PTCON0bits.PTCKPS1 = 1; // Free running mode PTCON0bits.PTMOD0 = 0; PTCON0bits.PTMOD1 = 0; // PWM PERIOD FOR FREE-RUNNING MODE: // Tpwm = ((PTPER + 1) x PTMRPS) / (Fosc/4). //(Desired period) (Period value) (prescale value) //------------------------ PTCON1: PWM TIMER CONTROL REGISTER 1 -----------------------------// PTCON1bits.PTEN = 0; // PWM time base is off //------------------------ PWMCON0: PWM CONTROL REGISTER 0 -----------------------------// // PWM outputs: PWM0-PWM1-PWM2-PWM3 PWMCON0bits.PWMEN0 = 0; PWMCON0bits.PWMEN1 = 1; PWMCON0bits.PWMEN2 = 0; // Config pair output: PWMCON0bits.PMOD0 = 1; // pair (PWM0, PWM1) is in the Independent mode PWMCON0bits.PMOD1 = 1; // pair (PWM2, PWM3) // PWMCON0bits.PMOD2 = 1; // pair (PWM4, PWM5) // PWMCON0bits.PMOD3 = 1; // pair (PWM6, PWM7) // //------------------------ PWMCON1: PWM CONTROL REGISTER 1 -----------------------------// // PWM Special Event Trigger: 1:1 postscale PWMCON1bits.SEVOPS0 = 0; PWMCON1bits.SEVOPS1 = 0; PWMCON1bits.SEVOPS2 = 0; PWMCON1bits.SEVOPS3 = 0; PWMCON1bits.SEVTDIR = 0; // A Special Event Trigger will occur when the PWM time base is counting upwards PWMCON1bits.UDIS = 0; // Updates from Duty Cycle and Period Buffer registers are enabled PWMCON1bits.OSYNC = 0; // Output overrides via the OVDCON register are asynchronous // Time base beginning value PTMRL = 0; PTMRH = 0; // Period value: 249 <==> Tpwm = 5Khz PTPERH = 0; PTPERL = 0xF9; // Max Duty cycle = Period value x 4. PTCON1bits.PTEN = 1; // PWM time base is on |
Trích:
thanhks anh |
Trích:
|
em làm thế này
đây là code em kiếm được nhưng chạy được tẹo là lại lỗi không chạy tiếp ai biết chỉ em với
#include <18f4431.h> #fuses H4,NOWDT,NOPROTECT,NOLVP #use delay(clock=40000000) const INT16 sin_wave[400]= { 998,1013,1028,1043,1058,1072,1087,1102,1117,1132, 1146,1161,1176,1190,1205,1219,1234,1248,1263,1277, 1291,1305,1319,1333,1347,1361,1375,1388,1402,1415, 1428,1442,1455,1468,1481,1493,1506,1519,1531,1543, 1555,1567,1579,1591,1602,1614,1625,1636,1647,1658, 1668,1679,1689,1699,1709,1719,1729,1738,1747,1756, 1765,1774,1782,1790,1799,1806,1814,1822,1829,1836, 1843,1849,1856,1862,1868,1874,1880,1885,1890,1895, 1900,1904,1908,1912,1916,1920,1923,1926,1929,1932, 1934,1937,1939,1940,1942,1943,1944,1945,1946,1946, 1946,1946,1946,1945,1944,1943,1942,1940,1939,1937, 1934,1932,1929,1926,1923,1920,1916,1912,1908,1904, 1900,1895,1890,1885,1880,1874,1868,1862,1856,1849, 1843,1836,1829,1822,1814,1806,1799,1790,1782,1774, 1765,1756,1747,1738,1729,1719,1709,1699,1689,1679, 1668,1658,1647,1636,1625,1614,1602,1591,1579,1567, 1555,1543,1531,1519,1506,1493,1481,1468,1455,1442, 1428,1415,1402,1388,1375,1361,1347,1333,1319,1305, 1291,1277,1263,1248,1234,1219,1205,1190,1176,1161, 1146,1132,1117,1102,1087,1072,1058,1043,1028,1013, 998,983,968,953,938,924,909,894,879,864, 850,835,820,806,791,777,762,748,733,719, 705,691,677,663,649,635,621,608,594,581, 568,554,541,528,515,503,490,477,465,453, 441,429,417,405,394,382,371,360,349,338, 328,317,307,297,287,277,267,258,249,240, 231,222,214,206,197,190,182,174,167,160, 153,147,140,134,128,122,116,111,106,101, 96,92,88,84,80,76,73,70,67,64, 62,59,57,56,54,53,52,51,50,50, 50,50,50,51,52,53,54,56,57,59, 62,64,67,70,73,76,80,84,88,92, 96,101,106,111,116,122,128,134,140,147, 153,160,167,174,182,190,197,206,214,222, 231,240,249,258,267,277,287,297,307,317, 328,338,349,360,371,382,394,405,417,429, 441,453,465,477,490,503,515,528,541,554, 568,581,594,608,621,635,649,663,677,691, 705,719,734,748,762,777,791,806,820,835, 850,864,879,894,909,924,938,953,968,983}; #bit TBInt_pin = 0xfa4.4 #byte PTMRL = 0XF7D #byte PTMRH = 0XF7C unsigned INT32 index1 = 0; unsigned INT32 index2 = 399; void main() { setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_COMPLEM ENTARY,PWM_OFF,PWM_OFF); setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN,1,0,4 99,0,1,10); while (1) { if (TBINT_PIN == 1 && PTMRL >= 100) { set_power_pwm0_duty(sin_wave[index1]); index1++; set_power_pwm2_duty(sin_wave[index2]); index2--; TBINT_PIN= 0; if (index1 >=400) index1=0; if (index2 <=0) { set_power_pwm2_duty(sin_wave[index2]); index2=399; } } } } |
Trích:
|
bác namqn cho em hỏi vấn đề này em đang làm đề tài inverter dùng dspic với thuật pid,em trong chu kỳ chia ra 20 bậc,trung bình mỗi bậc là 1ms,giá trị đặt được thay đổi bằng cách dùng bảng tra sin nhưng chỉ có 1ms thì liệu hệ thống có đáp đứng k bác,em chỉ làm pid cho động cơ nhưng lấy mẫu tới 25ms,giờ làm cái này chỉ có 1ms,bác có cách sử lí pid nào khác hơn không gợi ý cho em làm với.
|
hihi em vừa làm thành công con inventer 12>>220v pure sine
em lang thang trên mạng thì tìm được cái code của mấy anh điện tử việt nam lên em làm thử quả nhiên ra sine thật mấy anh à đây là link của em nó các anh xem xong chém nhẹ hihi
có gì anh nam sửa cho em cái sai sót https://www.facebook.com/video.php?v...type=2&theater |
mọi người có ai lập trình tạo sin PWM cho pic 18f4431 chưa giậy? chỉ mình sai chổ nào trog code này đi. mình sửa mãi mà không chạy. trong đồ án nghịch lưu 3 pha... ;(((
code mình: #include<htc.h> //#include<stdio.h> #include<math.h> __CONFIG(1,HS);//HS __CONFIG(2,WDTWINDIS); __CONFIG(3,MCLREN,PWM4RB5,PWRTDIS); __CONFIG(4,LVPDIS,STVRDIS,BORDIS); #define _XTAL_FREQ 20000000 float Ta,Tb,To,U,V,W; char sector; unsigned int i,j; unsigned int data[300]={0,40,81,121,161,202,242,282,322,363,403,443, 484,524,564,604,645,685,725,765,805,846,886,926,96 6,1006,1047,1087,1127, 1167,1207,1247,1287,1327,1367,1407,1447,1487,1527, 1567,1607,1647,1687, 1727,1767,1806,1846,1886,1926,1965,2005,2045,2084, 2124,2164,2203,2243, 2282,2322,2361,2401,2440,2480,2519,2558,2598,2637, 2676,2715,2754,2793, 2833,2872,2911,2950,2989,3027,3066,3105,3144,3183, 3222,3260,3299,3337,3376, 3415,3453,3491,3530,3568,3607,3645,3683,3721,3759, 3797,3835,3873,3911,3949, 3987,4025,4063,4100,4138,4176,4213,4251,4288,4326, 4363,4400,4437,4475,4512, 4549,4586,4623,4660,4697,4733,4770,4807,4843,4880, 4916,4953,4989,5026,5062, 5098,5134,5170,5206,5242,5278,5314,5350,5385,5421, 5457,5492,5527,5563,5598, 5633,5668,5704,5739,5774,5808,5843,5878,5913,5947, 5982,6016,6050,6085, 6119,6153,6187,6221,6255,6289,6323,6356,6390,6424, 6457,6490,6524,6557,6590, 6623,6656,6689,6722,6755,6787,6820,6852,6885,6917, 6949,6981,7013,7045,7077, 7109,7141,7172,7204,7235,7267,7298,7329,7360,7391, 7422,7453,7484,7514, 7545,7576,7606,7636,7666,7696,7726,7756,7786,7816, 7846,7875,7904,7934,7963, 7992,8021,8050,8079,8108,8136,8165,8193,8222,8250, 8278,8306,8334,8362,8390, 8417,8445,8472,8500,8527,8554,8581,8608,8635,8662, 8688,8715,8741,8767,8793, 8820,8846,8871,8897,8923,8948,8974,8999,9024,9049, 9074,9099,9124,9149,9173, 9198,9222,9246,9270,9294,9318,9342,9365,9389,9412, 9436,9459,9482,9505,9528, 9550,9573,9595,9618,9640,9662,9684,9706,9728,9749, 9771,9792,9814,9835, 9856,9877,9898,9918,9939,9959,9980}; /*unsigned int data[300]={127, 130, 132, 135, 138, 140, 143, 146, 148, 151, 153, 156, 159, 161, 164, 166, 169, 171, 174, 176, 179, 181, 183, 186, 188, 191, 193, 195, 197, 199, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 221, 223, 225, 227, 228, 230, 231, 233, 234, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 249, 250, 251, 251, 252, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 252, 252, 251, 251, 250, 249, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 238, 237, 236, 234, 233, 231, 230, 228, 227, 225, 223, 221, 220, 218, 216, 214, 212, 210, 208, 206, 204, 202, 199, 197, 195, 193, 191, 188, 186, 183, 181, 179, 176, 174, 171, 169, 166, 164, 161, 159, 156, 153, 151, 148, 146, 143, 140, 138, 135, 132, 130, 127, 124, 122, 119, 116, 114, 111, 108, 106, 103, 101, 98, 95, 93, 90, 88, 85, 83, 80, 78, 75, 73, 71, 68, 66, 63, 61, 59, 57, 55, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 33, 31, 29, 27, 26, 24, 23, 21, 20, 18, 17, 16, 14, 13, 12, 11, 10,9,8,7,6, 5,5,4,3,3,2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 26, 27, 29, 31, 33, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 55, 57, 59, 61, 63, 66, 68, 71, 73, 75, 78, 80, 83, 85, 88, 90, 93, 95, 98, 101, 103, 106, 108, 111, 114, 116, 119, 122, 124};*/ void main() { char m=0; i=sector=0; //khoi tao PWM tan so 5KHz, => T = 0.0002(s) PTCKPS1= 0; PTCKPS0=0; // bo chia 1:1-------------------------------------- PTMOD1=1; PTMOD0 =0; // continuos up/down counting PTEN =1; // PWM time base on PWMEN2 = 1; PWMEN1 = PWMEN0 =0; // dung cac chan PWM0--5 PMOD0 = PMOD1 = PMOD2 = 1; // independent : chay doc lap // complementary : chay bu tru nhau SEVOPS3 = SEVOPS2 = SEVOPS1 = SEVOPS0 =0; // các bit co dãn ngõ ra PWM dac biet. : 1-1 //------------------------------------------------------------- //tan so PWM 5KHz -> T = 1/5000 = 0.0002(s) /*(PTPER.4+1).4.Pre/Fosc=1/T => (PTPER.4+1).4.Pre = 4000 chon Pre = 1. => PTPER = 250. PTPER = PTPERH.256 + PTPERL => PTPERH = 0 , PTPERL =250 Ts = PTPER*4 */ PTPERH =0; PTPERL =250; // dead time 1us DTCON = 0b00000001; // interrupt PWM PTIE =1; PTIF = 0; IPEN = 1; GIE = 1; LATB6 =1; RB6 =1; while(1) {} } void interrupt ngat() { if(PTIF) { Ta=50.0*data[299-i]/150.0; Tb=50.0*data[i]/150.0; To=(250-Ta-Tb)/2.0; i=i+3; if(i>=300) { i=0; sector++; if(sector>6) sector=1; } switch(sector) { case 1: U= To; V=To+Ta; W=250-To; RD0=1; break; case 2: U= To+Tb; V=To; W=250-To; RD0=0; break; case 3: U= 250-To; V=To; W=To+Ta; RD0=1; break; case 4: U= 250-To; V=To+Tb; W=To; RD0=0; break; case 5: U= To+Ta; V=250-To; W=To; RD0=1; break; case 6: U= To; V=250-To; W=To+Tb; RD0=0; break; } PDC0H=(char)(U/256.0);PDC0L=(char)(U-PDC0H*256.0); PDC1H=(char)(V/256.0);PDC1L=(char)(V-PDC1H*256.0); PDC2H=(char)(W/256.0);PDC2L=(char)(W-PDC2H*256.0); PTIF=0; } } |
Trích:
|
Múi giờ GMT. Hiện tại là 08:56 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam