- పిడబ్ల్యుఎం సిగ్నల్ యొక్క ప్రాథమికాలు
- హార్డ్వేర్ సెటప్ మరియు అవసరం
- నువోటన్ N76E003 మైక్రోకంట్రోలర్ LED డిమ్మింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం
- N76E003 నువోటన్ మైక్రోకంట్రోలర్పై పిడబ్ల్యుఎం పిన్స్
- N76E003 నువోటన్ మైక్రోకంట్రోలర్లో పిడబ్ల్యుఎం రిజిస్టర్లు మరియు విధులు
- నువోటన్ N6E003 మైక్రోకంట్రోలర్లో PWM ఆపరేటింగ్ మోడ్లు
- PWM కోసం ప్రోగ్రామింగ్ నువోటన్ N76E003
- కోడ్ను మెరుస్తున్నది మరియు అవుట్పుట్ను పరీక్షిస్తోంది
పల్స్ వెడల్పు మాడ్యులేషన్ (పిడబ్ల్యుఎం) అనేది మైక్రోకంట్రోలర్లలో సాధారణంగా ఉపయోగించే సాంకేతికత, ఇది నిర్వచించిన పౌన frequency పున్యం మరియు విధి చక్రంతో నిరంతర పల్స్ సిగ్నల్ను ఉత్పత్తి చేస్తుంది. సంక్షిప్తంగా, PWM పౌన frequency పున్యం స్థిరంగా ఉన్నప్పుడు పల్స్ యొక్క వెడల్పును మార్చడం.
పిడబ్ల్యుఎం సిగ్నల్ ఎక్కువగా సర్వో మోటారు లేదా ఎల్ఇడి ప్రకాశాన్ని నియంత్రించడంలో ఉపయోగిస్తారు. అలాగే, మైక్రోకంట్రోలర్లు దాని అవుట్పుట్ పిన్లపై లాజిక్ 1 (హై) లేదా లాజిక్ 0 (తక్కువ) ను మాత్రమే అందించగలవు కాబట్టి, DAC లేదా డిజిటల్ టు అనలాగ్ కన్వర్టర్ ఉపయోగించకపోతే ఇది భిన్నమైన అనలాగ్ వోల్టేజ్ను అందించదు. అటువంటప్పుడు, మైక్రోకంట్రోలర్ను ఒక PWM ను వైవిధ్యమైన విధి చక్రంతో అవుట్పుట్ చేయడానికి ప్రోగ్రామ్ చేయవచ్చు, తరువాత వాటిని వివిధ అనలాగ్ వోల్టేజ్గా మార్చవచ్చు. మేము ఇంతకుముందు అనేక ఇతర మైక్రోకంట్రోలర్లలో పిడబ్ల్యుఎం పరిధీయతను ఉపయోగించాము.
- ARM7-LPC2148 PWM ట్యుటోరియల్: LED యొక్క ప్రకాశాన్ని నియంత్రించడం
- MSP430G2 ఉపయోగించి పల్స్ వెడల్పు మాడ్యులేషన్ (PWM): LED యొక్క ప్రకాశాన్ని నియంత్రించడం
- MPLAB మరియు XC8 తో PIC మైక్రోకంట్రోలర్ ఉపయోగించి PWM ను ఉత్పత్తి చేస్తుంది
- STM32F103C8 లో పల్స్ వెడల్పు మాడ్యులేషన్ (PWM): DC ఫ్యాన్ యొక్క నియంత్రణ వేగం
- PIC మైక్రోకంట్రోలర్ యొక్క GPIO పిన్స్ పై PWM సిగ్నల్స్ ఉత్పత్తి
- రాస్ప్బెర్రీ పై పిడబ్ల్యుఎం ట్యుటోరియల్
- ESP32 తో PWM ట్యుటోరియల్
ఈ ట్యుటోరియల్లో, మేము N76E003 మైక్రోకంట్రోలర్ యూనిట్ నుండి ఈ PWM సిగ్నల్ ఉపయోగించి నియంత్రించబడే LED ని ఇంటర్ఫేస్ చేస్తాము. మనకు ఎలాంటి హార్డ్వేర్ సెటప్ అవసరమో మరియు మన మైక్రోకంట్రోలర్ను ఎలా ప్రోగ్రామ్ చేయాలో మేము అంచనా వేస్తాము. దీనికి ముందు, PWM సిగ్నల్ యొక్క కొన్ని ప్రాథమికాలను అర్థం చేసుకుందాం.
పిడబ్ల్యుఎం సిగ్నల్ యొక్క ప్రాథమికాలు
దిగువ చిత్రంలో స్థిరమైన PWM సిగ్నల్ చూపబడుతుంది.
పై చిత్రం అదే ON సమయం మరియు అదే OFF సమయంతో స్థిరమైన చదరపు తరంగం తప్ప మరొకటి కాదు. సిగ్నల్ యొక్క మొత్తం కాలం 1 సెకను అని అనుకుందాం. అందువలన సమయం మరియు ఆఫ్ సమయం 500ms. ఈ సిగ్నల్ అంతటా ఒక LED కనెక్ట్ చేయబడితే, LED 500ms కోసం ఆన్ చేసి 500ms కోసం ఆపివేయబడుతుంది. అందువల్ల, దృక్పథంలో, ఎల్ఈడీ ఎటువంటి ఆఫ్ టైం లేకుండా ప్రత్యక్ష 5 వి సిగ్నల్ను ఆన్ చేస్తే వాస్తవ ప్రకాశంలో సగం వెలిగిపోతుంది.
ఇప్పుడు పై చిత్రంలో చూపినట్లుగా, విధి చక్రం మార్చబడితే, ముందు చర్చించిన అదే సూత్రాన్ని ఉపయోగించి LED 25% వాస్తవ ప్రకాశంతో వెలిగిపోతుంది. మీరు మరింత తెలుసుకోవాలనుకుంటే మరియు పల్స్ వెడల్పు మాడ్యులేషన్ (పిడబ్ల్యుఎం) గురించి తెలుసుకోవాలనుకుంటే, మీరు లింక్ చేసిన కథనాన్ని చూడవచ్చు.
హార్డ్వేర్ సెటప్ మరియు అవసరం
ఈ ప్రాజెక్ట్ యొక్క అవసరం PWM ఉపయోగించి LED ని నియంత్రించడం. N76E003 తో ఇంటర్ఫేస్ చేయడానికి LED అవసరం. N76E003 డెవలప్మెంట్ బోర్డులో LED అందుబాటులో ఉన్నందున, ఇది ఈ ప్రాజెక్టులో ఉపయోగించబడుతుంది. ఇతర భాగాలు అవసరం లేదు.
ప్రత్యేకంగా చెప్పనక్కర్లేదు, మాకు N76E003 మైక్రోకంట్రోలర్ ఆధారిత అభివృద్ధి బోర్డుతో పాటు ను-లింక్ ప్రోగ్రామర్ అవసరం. ప్రోగ్రామర్ను విద్యుత్ వనరుగా ఉపయోగించకపోతే అదనపు 5 వి విద్యుత్ సరఫరా యూనిట్ అవసరం కావచ్చు.
నువోటన్ N76E003 మైక్రోకంట్రోలర్ LED డిమ్మింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం
దిగువ స్కీమాటిక్లో మనం చూడగలిగినట్లుగా, టెస్ట్ LED అభివృద్ధి బోర్డు లోపల అందుబాటులో ఉంది మరియు ఇది పోర్ట్ 1.4 లో అనుసంధానించబడి ఉంది. తీవ్ర ఎడమ వైపున, ప్రోగ్రామింగ్ ఇంటర్ఫేస్ కనెక్షన్ చూపబడుతుంది.
N76E003 నువోటన్ మైక్రోకంట్రోలర్పై పిడబ్ల్యుఎం పిన్స్
N76E003 లో 20 పిన్లు ఉన్నాయి, వీటిలో 10 పిన్లను పిడబ్ల్యుఎంగా ఉపయోగించవచ్చు. దిగువ చిత్రాలు ఎరుపు చదరపు పెట్టెలో హైలైట్ చేసిన PWM పిన్లను చూపుతున్నాయి.
మనం చూడగలిగినట్లుగా, హైలైట్ చేసిన PWM పిన్లను ఇతర ప్రయోజనాల కోసం కూడా ఉపయోగించవచ్చు. అయినప్పటికీ, పిడబ్ల్యుఎం అవుట్పుట్ కోసం పిన్స్ కాన్ఫిగర్ చేయబడినప్పుడు పిన్స్ యొక్క ఈ ఇతర ప్రయోజనం అందుబాటులో ఉండదు. పిన్ 1.4 ను పిడబ్ల్యుఎం అవుట్పుట్ పిన్గా ఉపయోగిస్తారు, ఇది ఇతర కార్యాచరణను కోల్పోతుంది. కానీ, ఈ ప్రాజెక్ట్ కోసం మరొక కార్యాచరణ అవసరం లేదు కాబట్టి ఇది సమస్య కాదు.
పిన్ 1.4 ను అవుట్పుట్ పిన్గా ఎంచుకోవడానికి కారణం, ఇన్బిల్ట్ టెస్ట్ ఎల్ఇడి డెవలప్మెంట్ బోర్డులోని ఆ పిన్పై అనుసంధానించబడి ఉంది, అందువల్ల మనకు బాహ్య ఎల్ఇడిలు అవసరం లేదు. ఏదేమైనా, ఈ మైక్రోకంట్రోలర్లో 20 పిన్లలో, 10 పిన్లను పిడబ్ల్యుఎం అవుట్పుట్ పిన్గా ఉపయోగించవచ్చు మరియు ఇతర పిడబ్ల్యుఎం పిన్లను అవుట్పుట్ సంబంధిత ప్రయోజనాల కోసం ఉపయోగించవచ్చు.
N76E003 నువోటన్ మైక్రోకంట్రోలర్లో పిడబ్ల్యుఎం రిజిస్టర్లు మరియు విధులు
N76E003 సిస్టమ్ క్లాక్ లేదా టైమర్ 1 ఓవర్ఫ్లోను PWM గడియారంతో విభజించి ప్రెస్కాలర్తో 1/1 ~ 1/128 నుండి ఎంచుకోగలదు. 16-బిట్ పీరియడ్ రిజిస్టర్ పిడబ్ల్యుఎంపిహెచ్ మరియు పిడబ్ల్యుఎంపిఎల్ రిజిస్టర్ ఉపయోగించి పిడబ్ల్యుఎం వ్యవధిని సెట్ చేయవచ్చు.
మైక్రోకంట్రోలర్లో ఆరు వ్యక్తిగత పిడబ్ల్యుఎం రిజిస్టర్లు ఉన్నాయి, ఇవి పిజి 0, పిజి 1, పిజి 2, పిజి 3, పిజి 4 మరియు పిజి 5 అని పిలువబడే ఆరు పిడబ్ల్యుఎం సిగ్నల్లను ఉత్పత్తి చేస్తాయి. ఏదేమైనా, ప్రతి పిడబ్ల్యుఎం ఛానెల్లకు కాలం ఒకేలా ఉంటుంది ఎందుకంటే అవి ఒకే 16-బిట్ పీరియడ్ కౌంటర్ను పంచుకుంటాయి కాని ప్రతి పిడబ్ల్యుఎమ్ యొక్క విధి చక్రం ఇతరులకు భిన్నంగా ఉంటుంది, ఎందుకంటే ప్రతి పిడబ్ల్యుఎం 16 పిడబ్ల్యుఎం 0 హెచ్, పిడబ్ల్యుఎం 0 ఎల్ as అని పిలువబడే 16-బిట్ డ్యూటీ సైకిల్ రిజిస్టర్ను ఉపయోగిస్తుంది, {PWM1H, PWM1L}, {PWM2H, PWM2L}, {PWM3H, PWM3L}, {PWM4H, PWM4L}, మరియు {PWM5H, PWM5L}. ఈ విధంగా, N76E003 లో, ఆరు PWM అవుట్పుట్లను వేర్వేరు విధి చక్రాలతో స్వతంత్రంగా ఉత్పత్తి చేయవచ్చు.
ఇతర మైక్రోకంట్రోలర్ల మాదిరిగా కాకుండా, PWM ని ప్రారంభించడం వలన I / O పిన్లను వాటి PWM అవుట్పుట్లో స్వయంచాలకంగా సెట్ చేయదు. అందువలన, వినియోగదారు I / O అవుట్పుట్ మోడ్ను కాన్ఫిగర్ చేయాలి.
కాబట్టి, అనువర్తనానికి ఏది అవసరమో, మొదటి దశ PWM అవుట్పుట్గా ఒకటి లేదా రెండు లేదా అంతకంటే ఎక్కువ రెండు I / O పిన్లను నిర్ణయించడం లేదా ఎంచుకోవడం. ఒకదాన్ని ఎంచుకున్న తరువాత, PWM సిగ్నల్ను ఉత్పత్తి చేయడానికి I / O పిన్లను పుష్-పుల్ మోడ్ లేదా క్వాసి-బైడైరెక్షనల్గా సెట్ చేయాలి. PxM1 మరియు PxM2 రిజిస్టర్ ఉపయోగించి దీన్ని ఎంచుకోవచ్చు. ఈ రెండు రిజిస్టర్లు I / O మోడ్లను సెట్ చేస్తాయి, ఇక్కడ x పోర్ట్ నంబర్ను సూచిస్తుంది (ఉదాహరణకు, పోర్ట్ P1.0 రిజిస్టర్ P1M1 మరియు P1M2 గా ఉంటుంది, P3.0 కోసం ఇది P3M1 మరియు P3M2, మొదలైనవి)
ఆకృతీకరణను క్రింది చిత్రంలో చూడవచ్చు-
అప్పుడు, తదుపరి దశ PWM ని నిర్దిష్ట I / O పిన్ (ల) లో ప్రారంభించడం. దీన్ని చేయడానికి, వినియోగదారు PIOCON0 లేదా PIOCON1 రిజిస్టర్లను సెట్ చేయాలి. PIOCON0 మరియు PIOCON1 PWM సిగ్నల్లపై ఆధారపడి వేర్వేరు పిన్లను నియంత్రిస్తాయి కాబట్టి రిజిస్టర్ పిన్ మ్యాపింగ్ మీద ఆధారపడి ఉంటుంది. ఈ రెండు రిజిస్టర్ల ఆకృతీకరణ క్రింది చిత్రంలో చూడవచ్చు-
మేము గమనిస్తే, పై రిజిస్టర్ 6 కాన్ఫిగరేషన్లను నియంత్రిస్తుంది. మిగిలిన వాటి కోసం, PIOCON1 రిజిస్టర్ను ఉపయోగించండి.
ఈ విధంగా, పై రిజిస్టర్ మిగిలిన 4 కాన్ఫిగరేషన్లను నియంత్రిస్తుంది.
నువోటన్ N6E003 మైక్రోకంట్రోలర్లో PWM ఆపరేటింగ్ మోడ్లు
తదుపరి దశ PWM ఆపరేషన్ మోడ్లను ఎంచుకోవడం. ప్రతి PWM ఇండిపెండెంట్, సింక్రోనస్ మరియు డెడ్-టైమ్ ఎనేబుల్ మోడ్ అనే మూడు ఆపరేషన్ మోడ్లకు మద్దతు ఇస్తుంది.
ఆరు PWM సిగ్నల్స్ స్వతంత్రంగా ఉత్పత్తి చేయగల పరిష్కారాన్ని ఇండిపెండెంట్ మోడ్ అందిస్తుంది. LED సంబంధిత ఆపరేషన్లు లేదా బజర్లను ఆన్ చేసి నియంత్రించాల్సిన అవసరం వచ్చినప్పుడు ఇది గరిష్టంగా అవసరం.
సమకాలిక మోడ్ సెట్లు PG1 / 3/5 ఒకేవిధమైన దశలో PWM అవుట్పుట్, PG0 / 2/4, పేరు PG0 / 2/4 స్వతంత్ర PWM అవుట్పుట్ సంకేతాలు అందిస్తుంది అదే. మూడు-దశల మోటారులను నియంత్రించడానికి ఇది ప్రధానంగా అవసరం.
డెడ్ టైమ్ చొప్పించడం మోడ్ కొద్దిగా క్లిష్టమైన మరియు ముఖ్యంగా పారిశ్రామిక అనువర్తనాల్లో, రియల్ అప్లికేషన్లు మోటార్ దరఖాస్తు బిట్ ఉంది. అటువంటి అనువర్తనాల్లో, పరిపూరకరమైన PWM అవుట్పుట్ “డెడ్-టైమ్” చొప్పించడం అవసరం, ఇది GPIB లు వంటి పవర్ స్విచింగ్ పరికరాల నష్టాన్ని నిరోధిస్తుంది. ఆకృతీకరణలు ఈ మోడ్లో PG0 / 2/4 స్వతంత్ర మోడ్ మాదిరిగానే PWM అవుట్పుట్ సిగ్నల్లను అందిస్తుంది, అయితే PG1 / 3/5 PG0 / 2/4 యొక్క "అవుట్-ఫేజ్ PWM సిగ్నల్స్" అవుట్పుట్ను అందిస్తుంది. మరియు PG1 / 3/5 డ్యూటీ రిజిస్టర్ను విస్మరించండి.
దిగువ రిజిస్టర్ కాన్ఫిగరేషన్ ఉపయోగించి మూడు మోడ్లకు పైన ఎంచుకోవచ్చు-
తదుపరి కాన్ఫిగరేషన్ PWMCON1 రిజిస్టర్ ఉపయోగించి PWM రకాలను ఎన్నుకోవడం.
కాబట్టి, మనం చూడగలిగినట్లుగా, పై రిజిస్టర్ ఉపయోగించి రెండు పిడబ్ల్యుఎం రకాలు అందుబాటులో ఉన్నాయి. అంచు-సమలేఖనంలో, 16-బిట్ కౌంటర్ 0000H నుండి {PWMPH, PWMPL set యొక్క సెట్ విలువ వరకు లెక్కించడం ద్వారా సింగిల్-స్లోప్ ఆపరేషన్ను ఉపయోగిస్తుంది, ఆపై 0000H నుండి ప్రారంభమవుతుంది. అవుట్పుట్ తరంగ రూపం ఎడమ-అంచు సమలేఖనం చేయబడింది.
కానీ, సెంటర్-అలైన్డ్ మోడ్లో, 16-బిట్ కౌంటర్ 0000H నుండి {PWMPH, PWMPL to వరకు లెక్కించడం ద్వారా ద్వంద్వ-వాలు ఆపరేషన్ను ఉపయోగిస్తుంది, ఆపై మళ్ళీ లెక్కించడం ద్వారా {PWMPH, PWMPL} నుండి 0000H వరకు వెళుతుంది. అవుట్పుట్ మధ్యలో సమలేఖనం చేయబడింది మరియు అతివ్యాప్తి చెందని తరంగ రూపాలను రూపొందించడానికి ఇది ఉపయోగపడుతుంది. ఇప్పుడు చివరకు దిగువ రిజిస్టర్లలో తనిఖీ చేయగల PWM నియంత్రణ కార్యకలాపాలు-
గడియార మూలాన్ని సెట్ చేయడానికి, CKCON క్లాక్ కంట్రోల్ రిజిస్టర్ని ఉపయోగించండి.
పిడబ్ల్యుఎం అవుట్పుట్ సిగ్నల్ కూడా పిఎమ్ఎన్ రిజిస్టర్ ఉపయోగించి ముసుగు చేయవచ్చు. ఈ రిజిస్టర్ ఉపయోగించి, వినియోగదారు అవుట్పుట్ సిగ్నల్ను 0 లేదా 1 ద్వారా ముసుగు చేయవచ్చు.
తదుపరిది పిడబ్ల్యుఎం కంట్రోల్ రిజిస్టర్-
పై రిజిస్టర్ PWM ను అమలు చేయడానికి, కొత్త కాలం మరియు డ్యూటీ లోడ్ను లోడ్ చేయడానికి, PWM ఫ్లాగ్ను నియంత్రించడానికి మరియు PWM కౌంటర్ను క్లియర్ చేయడానికి ఉపయోగపడుతుంది.
అనుబంధ బిట్ కాన్ఫిగరేషన్లు క్రింద చూపించబడ్డాయి-
క్లాక్ డివైడర్ను సెట్ చేయడానికి, PWM క్లాక్ డివైడర్ కోసం PWMCON1 రిజిస్టర్ను ఉపయోగించండి. 5 వ బిట్ గ్రూప్ మోడ్ ఎనేబుల్డ్ గ్రూప్డ్ పిడబ్ల్యుఎమ్ కోసం ఉపయోగించబడుతుంది మరియు మొదటి మూడు పిడబ్ల్యుఎం జతలకు ఒకే విధి చక్రం అందిస్తుంది.
PWM కోసం ప్రోగ్రామింగ్ నువోటన్ N76E003
కోడింగ్ సులభం మరియు ఈ ట్యుటోరియల్ కోసం ఉపయోగించిన పూర్తి కోడ్ ఈ పేజీ దిగువన చూడవచ్చు. LED ను P1.4 పిన్తో అనుసంధానించారు. అందువల్ల P1.4 పిన్ PWM అవుట్పుట్ కోసం ఉపయోగించాల్సిన అవసరం ఉంది.
ప్రధాన ప్రోగ్రామ్లో, సెట్టింగులు సంబంధిత క్రమంలో జరుగుతాయి. సంకేతాల పంక్తుల క్రింద PWM ను సెట్ చేస్తుంది మరియు P1.4 పిన్ను PWM అవుట్పుట్గా కాన్ఫిగర్ చేస్తుంది.
పి 14_పుష్ పుల్_మోడ్;
పుష్-పుల్ మోడ్లో పిన్ P1.4 ను సెట్ చేయడానికి ఇది ఉపయోగించబడుతుంది. ఇది Function_define.h లైబ్రరీలో ఇలా నిర్వచించబడింది
# P14_PushPull_Mode P1M1 & = ~ SET_BIT4; P1M2- = SET_BIT4 PWM1_P14_OUTPUT_ENABLE;
పిన్ P1.4 లో PWM ని ప్రారంభించడానికి ఉపయోగించే తదుపరి పంక్తులు. ఇది Function_define.h లైబ్రరీలో కూడా నిర్వచించబడింది
# PWM1_P14_OUTPUT_ENABLE BIT_TMP = EA; EA = 0; TA = 0xAA; TA = 0x55; SFRS- = 0x01; PIOCON1- = 0x02; TA = 0xAA; TA = 0x55; SFRS & = 0PFE; PWM1 అవుట్పుట్ PWM_IMDEPENDENT_MODE ని ప్రారంభిస్తుంది ;
PWM ను స్వతంత్ర మోడ్లో సెట్ చేయడానికి క్రింది కోడ్ ఉపయోగించబడుతుంది. లో Function_define.h లైబ్రరీ, అది as- నిర్వచిస్తారు
# PWM_IMDEPENDENT_MODE PWMCON1 & = 0x3F PWM_EDGE_TYPE ని నిర్వచించండి;
అప్పుడు మనం EDGE రకం PWM అవుట్పుట్ను సెట్ చేయాలి. లో Function_define.h లైబ్రరీ, అది as- నిర్వచిస్తారు
# PWM_EDGE_TYPE PWMCON1 & = ~ SET_BIT4 set_CLRPWM;
తరువాత, మేము SFR_Macro.h లైబ్రరీలో లభించే PWM కౌంటర్ విలువను క్లియర్ చేయాలి.
# set_CLRPWM CLRPWM = 1 ని నిర్వచించండి
ఆ తరువాత, పిడబ్ల్యుఎం గడియారాన్ని ఎఫ్సిస్ గడియారంగా ఎంపిక చేస్తారు మరియు ఉపయోగించిన డివిజన్ కారకం 64 డివిజన్.
PWM_CLOCK_FSYS; PWM_CLOCK_DIV_64;
రెండూ ఇలా నిర్వచించబడ్డాయి-
# PWM_CLOCK_FSYS CKCON & = 0xBF # నిర్వచించండి PWM_CLOCK_DIV_64 PWMCON1- = 0x06; PWMCON1 & = 0xFE PWM_OUTPUT_ALL_NORMAL;
అవుట్పుట్ PWM సిగ్నల్ను 0 ద్వారా నిర్వచించటానికి కోడ్ యొక్క లైన్ క్రింద ఉపయోగించబడుతుంది-
# PWM_OUTPUT_ALL_NORMAL PNP = 0x00 set_PWM_period (1023) ను నిర్వచించండి ;
అప్పుడు మనం పిడబ్ల్యుఎం సిగ్నల్ యొక్క వ్యవధిని సెట్ చేయాలి. ఈ ఫంక్షన్ PWMPL మరియు PWMPH రిజిస్టర్లో కాలాన్ని సెట్ చేస్తుంది. ఇది 16-బిట్ రిజిస్టర్ కాబట్టి, ఫంక్షన్ పిడబ్ల్యుఎం పీరియడ్ను సెట్ చేయడానికి బిట్ షిఫ్టింగ్ పద్ధతిని ఉపయోగిస్తుంది.
void set_PWM_period (సంతకం చేయని పూర్ణాంక విలువ) { PWMPL = (విలువ & 0x00FF); PWMPH = ((విలువ & 0xFF00) >> 8); }
అయితే, 1023 మరియు 8-బిట్ కాలం కాకుండా, వినియోగదారులు ఇతర విలువలను కూడా ఉపయోగించవచ్చు. వ్యవధిని పెంచడం వల్ల మృదువైన మసకబారడం లేదా క్షీణించడం జరుగుతుంది.
set_PWMRUN;
ఇది SFR_Macro.h లైబ్రరీలో నిర్వచించిన PWM ను ప్రారంభిస్తుంది-
# set_PWMRUN PWMRUN = 1 ని నిర్వచించండి
తరువాత, టైమ్ లూప్లో , LED ఆన్ చేయబడి, నిరంతరం క్షీణిస్తుంది.
(1) { కోసం (విలువ = 0; విలువ <1024; విలువ + = 10) { set_PWM1 (విలువ); టైమర్ 1_డేలే 10 ఎంఎస్ (3); } for (విలువ = 1023; విలువ> 0; విలువ - = 10) { set_PWM1 (విలువ); టైమర్ 1_డేలే 10 ఎంఎస్ (2); } } }
విధి చక్రం set_PWM1 () చేత సెట్ చేయబడింది, ఇది PWM1L మరియు PWM1H రిజిస్టర్లో విధి చక్రం సెట్ చేసే ఫంక్షన్.
void set_PWM1 (సంతకం చేయని పూర్ణాంక విలువ) { PWM1L = (విలువ & 0x00FF); PWM1H = ((విలువ & 0xFF00) >> 8); set_LOAD; }
కోడ్ను మెరుస్తున్నది మరియు అవుట్పుట్ను పరీక్షిస్తోంది
కోడ్ సిద్ధమైన తర్వాత, దాన్ని కంపైల్ చేసి కంట్రోలర్కు అప్లోడ్ చేయండి. మీరు పర్యావరణానికి కొత్తగా ఉంటే, ప్రాథమికాలను తెలుసుకోవడానికి నువోటన్ N76E003 ట్యుటోరియల్తో ప్రారంభించడం చూడండి. దిగువ ఫలితం నుండి మీరు చూడగలిగినట్లుగా, కోడ్ 0 హెచ్చరిక మరియు 0 లోపాలను తిరిగి ఇచ్చింది మరియు కైల్ చేత డిఫాల్ట్ ఫ్లాషింగ్ పద్ధతిని ఉపయోగించి ఫ్లాష్ చేయబడింది. అప్లికేషన్ పనిచేయడం ప్రారంభిస్తుంది.
పునర్నిర్మాణం ప్రారంభమైంది: ప్రాజెక్ట్: PWM STARTUP.A51 ను సమీకరించే లక్ష్యం 'టార్గెట్ 1' ను పునర్నిర్మించండి … main.c ని కంపైల్ చేస్తోంది… Delay.c ని కంపైల్ చేస్తోంది… లింక్ చేస్తోంది… ప్రోగ్రామ్ పరిమాణం: డేటా = 35.1 xdata = 0 కోడ్ = 709 సృష్టిస్తోంది ". \ ఆబ్జెక్ట్స్ \ pwm"… " నుండి హెక్స్ ఫైల్ . \ ఆబ్జెక్ట్స్ \ pwm" - 0 లోపం (లు), 0 హెచ్చరిక (లు). సమయం ముగిసింది: 00:00:05
హార్డ్వేర్ విద్యుత్ వనరుతో అనుసంధానించబడి ఉంది మరియు ఇది.హించిన విధంగా పనిచేస్తోంది. ఆన్బోర్డ్ LED యొక్క ప్రకాశం తగ్గింది మరియు తరువాత మార్పు PWM విధి చక్రం సూచించడానికి పెరిగింది.
ఈ ట్యుటోరియల్ యొక్క పూర్తి పని క్రింద లింక్ చేయబడిన వీడియోలో కూడా చూడవచ్చు. మీరు ట్యుటోరియల్ను ఆస్వాదించారని మరియు మీకు ఏవైనా ప్రశ్నలు ఉంటే వాటిని ఉపయోగకరంగా నేర్చుకున్నారని, వాటిని వ్యాఖ్య విభాగంలో ఉంచండి లేదా మీరు ఇతర ఫోరమ్ ప్రశ్నలకు మా ఫోరమ్లను ఉపయోగించవచ్చని ఆశిస్తున్నాము.