ஏவிஆர்: ஏவிஆர் ஸ்டுடியோ சூழலில் நிரலாக்கம். Atmel Avr ஸ்டுடியோவிலிருந்து ஒருங்கிணைந்த பிழைத்திருத்த சூழல் AVR ஸ்டுடியோ

ஏவிஆர் ஸ்டுடியோ 4 உடன் பணிபுரிய, அதை நீங்களே நிறுவ வேண்டும். இது ஏற்கனவே நிறுவப்பட்டிருந்தால், நீங்கள் இந்த படிநிலையைத் தவிர்க்கலாம்.

நிறுவல்:
ஒரு கோப்பகத்தை உருவாக்கவும் c:/avr/ - இங்குதான் வேலை செய்யும் நிரல்கள் இருக்கும்.
ஒரு கோப்பகத்தை உருவாக்கவும், எடுத்துக்காட்டாக c:/works/ - இங்குதான் உங்கள் படைப்புகள் சேமிக்கப்படும்.
குறுக்குவழிகள் இருப்பது அவசியம், அதனால் அவற்றில் எந்த பிரச்சனையும் இல்லை.

பொதுவாக AVRStudio5 உள்ளது, ஆனால் AVRStudio4 இன்னும் போதுமானது.

அனைத்து வேலைகளும் AVRStudio4 இல் நடைபெறும், WinAVR AVR-GCC நூலகத்தின் காரணமாக மட்டுமே தேவைப்படுகிறது (இதனால் நீங்கள் C இல் எழுதலாம்)
ஆனாலும்! நீங்கள் முதலில் WinAVR ஐ நிறுவ வேண்டும், இல்லையெனில் AVR-GCC நூலகம் எடுக்கப்படாது.

நீங்கள் அதை இங்கே கண்டுபிடிப்பீர்கள் என்று நினைக்கிறேன்.
C இல் எழுதுவதற்கு AVR-GCC
அசெம்பிளருக்கு முறையே Atmel Avr Assembler.

MK ஐ புதிதாகப் புரிந்துகொள்வது நல்லது. இதன் பொருள் அசெம்ப்ளரிடமிருந்து, அதாவது நீங்கள் Atmel AVR அசெம்பிளரை உருவாக்குகிறீர்கள்.

பின்னர் Atmega8 மைக்ரோகண்ட்ரோலரைத் தேர்ந்தெடுக்கவும்.

திட்டம் உருவாக்கப்படும் போது, ​​ஒரு பெரிய, வெள்ளை, வெற்று ஸ்லேட் இருக்கும். இங்கே ஒரு குறியீடு இருக்கும்.

இந்த தாளின் உள்ளடக்கங்களைப் பற்றி கொஞ்சம்

"கருத்துகள்" என்பது தொகுக்கும் போது தொகுக்கும் உரையாகும்.
கருத்து தொடங்குவதற்கு முன் ஒரு சிறப்பு சின்னம் இருக்க வேண்டும், நான் சின்னத்தைப் பயன்படுத்துகிறேன்; "அரைப்புள்ளி", "இரட்டை சாய்வு" (//),
கருத்துகளின் எடுத்துக்காட்டுகள் இங்கே

/* * இந்த வகையான கருத்து (பல வரி), * பொதுவாக மூலக் குறியீட்டைப் பற்றிய * உடன் வரும் தகவல்களுக்கு * பயன்படுத்தப்படுகிறது, அதாவது. * பெயர், டெவலப்பர், முதலியன */ NOP // இந்தக் கருத்து முக்கியமாக ஒரு கட்டளையின் நோக்கத்தை அல்லது SLEEP குறியீட்டின் ஒரு பகுதியை விளக்கப் பயன்படுகிறது ; இந்த கருத்து, முந்தையதைப் போலவே, குறியீட்டில் விளக்கத்திற்கு (குறிப்புகளுக்கு) பயன்படுத்தப்படலாம்

ஒவ்வொரு வரியிலும் கட்டளைகள் எழுதப்பட்டுள்ளன. அந்த. ஒரு கட்டளை - ஒரு வரி.
இரண்டு “அளவுருக்கள்”, ஒன்று அல்லது எதுவும் இல்லாமல் கட்டளைகள் உள்ளன என்று சொல்லலாம்

MOV R16, R17 ; இரண்டு அளவுருக்கள் INC R16 ; ஒரு SEI அளவுரு; அளவுருக்கள் இல்லாமல்

MOV R16, R17 ; மூன்று பைட்டுகள் INC R16; இரண்டு பைட்டுகள் SEI ; ஒரு பைட்

குழு அளவு மற்றும் அளவுருக்களுக்கு இடையே உள்ள தொடர்பைப் பார்க்கிறீர்களா?

ஒவ்வொரு மைக்ரோகண்ட்ரோலருக்கும் அதன் சொந்த அசெம்பிளர் உள்ளது, இருப்பினும் அவற்றின் நினைவாற்றல் ஒத்திருக்கிறது, அதாவது. ஒரு தொடரின் MKக்கான MOV கட்டளையானது இயந்திரக் குறியீட்டில் 0x12 என்றும் மற்றொரு 0x55 என்றும் இருக்கும்.
தொகுக்கும்போது, ​​​​அது நமக்குத் தேவையான குறியீட்டில் தொகுக்கப்படும், எந்த மைக்ரோகண்ட்ரோலருக்காக நிரலை எழுதுகிறோம் என்பதை கம்பைலரிடம் சொல்ல வேண்டும்.
ஒரு திட்டத்தை உருவாக்கும் போது இது பொதுவாக தேர்ந்தெடுக்கப்படுகிறது.
இந்த காரணத்திற்காக, நாங்கள் Atmega8 மைக்ரோகண்ட்ரோலரைத் தேர்ந்தெடுத்தோம்.

ஆனால் அது எல்லாம் இல்லை. எங்கள் வாழ்க்கையை எளிதாக்க, AVRStudio4 ஆனது "மேக்ரோஅசெம்பிளர்" என்று அழைக்கப்படும் மாறிலிகளின் தொகுப்பைக் கொண்டுள்ளது.

அவற்றை ஏற்றுவதற்கு, குறியீட்டின் தொடக்கத்தில் வரியைச் செருக வேண்டும்

"m8def.inc" // .include கட்டளையைப் பயன்படுத்தி, m8def.inc கோப்பை ஏற்றினோம்; இப்போது அது எங்களுக்கு எளிதாகிவிடும்;)

குறியீட்டின் தொடக்கத்தில், குறுக்கீடு அட்டவணை வைக்கப்பட்டுள்ளது. அது என்ன, எப்படி வேலை செய்கிறது என்பதை வேறொரு பதிவில் விளக்குகிறேன். ஆனால் இப்போதைக்கு இதை இப்படி எழுதலாம்.

RJMP ரீசெட் ; ரீசெட் ஹேண்ட்லர் RETI; RJMP EXT_INT0 ; IRQ0 கையாளுபவர் RETI; RJMP EXT_INT1 ; IRQ1 கையாளுபவர் RETI; RJMP TIM2_COMP ; டைமர்2 ஹேண்ட்லர் RETI ஐ ஒப்பிடுக; RJMP TIM2_OVF ; டைமர்2 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP TIM1_CAPT ; டைமர்1 கேப்சர் ஹேண்ட்லர் RETI; RJMP TIM1_COMPA ; டைமர்1 ஒப்பீடுஏ ஹேண்ட்லர் RETI; RJMP TIM1_COMPB ; டைமர்1 CompareB ஹேண்ட்லர் RETI; RJMP TIM1_OVF ; டைமர்1 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP TIM0_OVF ; டைமர்0 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP SPI_STC ; SPI பரிமாற்ற முழுமையான ஹேண்ட்லர் RETI; RJMP USART_RXC ; USART RX முழுமையான ஹேண்ட்லர் RETI; RJMP USART_UDRE ; UDR வெற்று ஹேண்ட்லர் RETI; RJMP USART_TXC ; USART TX முழுமையான ஹேண்ட்லர் RETI; RJMP ஏடிசி ; ADC கன்வெர்ஷன் கம்ப்ளீட் ஹேண்ட்லர் RETI; RJMP EE_RDY ; EEPROM ரெடி ஹேண்ட்லர் RETI; RJMP ANA_COMP ; அனலாக் ஒப்பீட்டாளர் ஹேண்ட்லர் RETI; RJMP TWSI ; இரண்டு கம்பி தொடர் இடைமுகம் கையாளுபவர் RETI; RJMP SPM_RDY ; ஸ்டோர் புரோகிராம் மெமரி ரெடி ஹேண்ட்லர்

இதற்குப் பிறகு குறியீடு தானே வருகிறது

மறுதொடக்கம்: ; துவக்க டோக்கன் MAIN: NOP ; முக்கிய வளைய மார்க்கர் RJMP MAIN

ஆனால் ஒன்று (அல்லது ஒன்று அல்ல, ஆனால் பல) அம்சங்கள் உள்ளன.

குறியீட்டை எழுதும் வசதிக்காகவும், அதன் தெளிவுக்காகவும், தொடர்புடைய மாற்றங்களை எளிதாக்குவதற்காகவும், குறிப்பான்கள் கொடுக்கப்பட்டன, அவை எப்படி இருக்கும்? “ரீசெட்:” மற்றும் “மெயின்:” குறிப்பான்கள்; அவற்றின் பெயர்களில் ஏறக்குறைய எந்த லத்தீன் எழுத்துக்களும் எண்களும் இருக்கலாம். குறிப்பான்கள் செயல்பாடுகள் மற்றும் கட்டளைகளின் பெயர்களைக் கொண்டிருக்க முடியாது, எடுத்துக்காட்டாக "NOP".
ஒருவர் எப்படி அவர்களை அணுகுவார்? RJMP கட்டளையை சொல்லலாம்.

மேலும், குறிப்பான்களிலிருந்து, நாம் ஒரு சப்ரூட்டினை (செயல்முறை) செய்யலாம், அது முடிந்ததும் அது அழைக்கப்பட்ட இடத்திற்குத் திரும்புவோம். அதை அழைக்க, "RCALL (subroutine)" கட்டளையைப் பயன்படுத்தவும், மற்றும் Subroutine (செயல்முறை) இலிருந்து திரும்ப, நீங்கள் அதை "RET" கட்டளையுடன் முடிக்க வேண்டும். இது போன்ற குறியீட்டுடன் நாம் முடிக்க வேண்டும்:

மறுதொடக்கம்: முதன்மை: NOP RCALL PPP1 ; சப்ரூட்டினை அழைக்கவும் RJMP MAIN PPP1: NOP RET ; சப்ரூட்டினிலிருந்து வெளியேறு

"RCALL" கட்டளை எவ்வாறு செயல்படுகிறது, அது அழைக்கப்படும்போது, ​​​​அது அழைக்கப்பட்ட முகவரி STACK இல் வைக்கப்படும், மேலும் "RET" கட்டளை அழைக்கப்பட்டால், அது "stack" பதிவேட்டில் இருந்து அகற்றப்படும். STACK துவக்கப்பட வேண்டும்.

எங்கள் எம்.கே.யுடன் இணைந்து பணியாற்ற, அதை துவக்க வேண்டும். ஏனெனில் mk, இந்த சாதனம் உலகளாவியது, இதில் பல உள்ளீடு/வெளியீட்டு போர்ட்கள் மற்றும் புற சாதனங்கள் உள்ளன. USART, PWM, DAC, ADC போன்றவை. மைக்ரோகண்ட்ரோலரைத் தொடங்குவதற்கான முதல் படி "ஸ்டாக்" இன் தொடக்கத்தைக் குறிப்பிடுவதாகும். "ரீசெட்:" மார்க்கருக்குப் பிறகு துவக்கத்தை நாங்கள் மேற்கொள்கிறோம்.

LDI R16,HIGH(RAMEND) SPH

குறியீட்டின் தொடக்கத்தில் .include “m8def.inc” கட்டளையை உள்ளிடாமல் இருந்திருந்தால், அதை இப்படி எழுத வேண்டியிருக்கும்:

LDI R16,0x04 OUT SPH,R16 LDI R16,0x5f OUT SPL,R16

வேறுபாடு குறிப்பிடத்தக்கது, என் கருத்து.

STACK என்பது ஒரு ஸ்டோர் வகை நினைவகம்: (கடைசி, முதலில் வெளியே).
கடை வகை ஒரு பல்பொருள் அங்காடி அல்ல, ஆனால் ஒரு இயந்திர துப்பாக்கியிலிருந்து ஒரு கொம்பு. தோட்டாக்கள் எவ்வாறு அதில் ஏற்றப்படுகின்றன, பின்னர் அவை எவ்வாறு அகற்றப்படுகின்றன என்பதை அனைவரும் கற்பனை செய்து பார்க்க முடியும் என்று நம்புகிறேன்.
STACK நினைவகத்தில் நீங்கள் அதிக கவனம் செலுத்த வேண்டும், ஏனெனில்... அதனுடன் வேலை செய்வதில் ஏதேனும் சிறிய தவறு ஸ்டாக் தோல்விக்கு வழிவகுக்கும். இது மிகவும் முக்கியமான தலைப்பு, இதற்கு முழு தலைப்பையும் அர்ப்பணிக்க முடிவு செய்தேன், அதை ஒரு தனி குறிப்பில் எழுதுகிறேன்.

எனவே பின்வரும் குறியீட்டைப் பெற்றோம்:

"m8def.inc" RJMP ரீசெட் ; ரீசெட் ஹேண்ட்லர் RETI; RJMP EXT_INT0 ; IRQ0 கையாளுபவர் RETI; RJMP EXT_INT1 ; IRQ1 கையாளுபவர் RETI; RJMP TIM2_COMP ; டைமர்2 ஹேண்ட்லர் RETI ஐ ஒப்பிடுக; RJMP TIM2_OVF ; டைமர்2 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP TIM1_CAPT ; டைமர்1 கேப்சர் ஹேண்ட்லர் RETI; RJMP TIM1_COMPA ; டைமர்1 ஒப்பீடுஏ ஹேண்ட்லர் RETI; RJMP TIM1_COMPB ; டைமர்1 CompareB ஹேண்ட்லர் RETI; RJMP TIM1_OVF ; டைமர்1 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP TIM0_OVF ; டைமர்0 ஓவர்ஃப்ளோ ஹேண்ட்லர் RETI; RJMP SPI_STC ; SPI பரிமாற்ற முழுமையான ஹேண்ட்லர் RETI; RJMP USART_RXC ; USART RX முழுமையான ஹேண்ட்லர் RETI; RJMP USART_UDRE ; UDR வெற்று ஹேண்ட்லர் RETI; RJMP USART_TXC ; USART TX முழுமையான ஹேண்ட்லர் RETI; RJMP ஏடிசி ; ADC கன்வெர்ஷன் கம்ப்ளீட் ஹேண்ட்லர் RETI; RJMP EE_RDY ; EEPROM ரெடி ஹேண்ட்லர் RETI; RJMP ANA_COMP ; அனலாக் ஒப்பீட்டாளர் ஹேண்ட்லர் RETI; RJMP TWSI ; இரண்டு கம்பி தொடர் இடைமுகம் கையாளுபவர் RETI; RJMP SPM_RDY ; ஸ்டோர் புரோகிராம் மெமரி ரெடி ஹேண்ட்லர் ரீசெட்: LDI R16,HIGH(RAMEND) OUT SPH,R16 LDI R16,LOW(RAMEND) SPL,R16 RGMP ரீசெட் மெயின்: NOP ; முக்கிய வளைய மார்க்கர் RJMP MAIN

இந்த கட்டத்தில், நாங்கள் திட்டத்தை தொகுத்து பிழைத்திருத்தத்திற்கு இயக்கலாம், ஆனால் எங்கள் குறியீடு எதையும் செய்யாததால், குறியீட்டில் உள்ள தொடரியல் பிழைகளை மட்டுமே அடையாளம் காண முடியும்.

சரியான பிழைத்திருத்த செயல்முறைக்கு, எம்.கே வேலை செய்யும் அதிர்வெண்ணை நீங்கள் முன்மாதிரி அமைக்க வேண்டும், இது தொகுத்து பிழைத்திருத்தத்தைத் தொடங்கிய பின்னரே செய்யப்படுகிறது,
இதன் பொருள், மெனு பட்டியில் "உருவாக்கம்" என்பதைக் கண்டுபிடித்து, அதைத் திறந்து, "உருவாக்கி இயக்கு" என்பதைப் பார்க்கவும், அதன் பிறகு எங்கள் குறியீடு பட்டியலில் முதல் கட்டளைக்கு எதிரே மஞ்சள் அம்புக்குறியைக் காண்போம். இப்போது மெனு பட்டியில் "பிழைத்திருத்தம்" என்பதைத் தேடி, "AVR சிமுலேட்டர் விருப்பங்கள்" என்பதைக் கிளிக் செய்க, பின்வரும் சாளரம் திறக்கிறது:

இதில் MK மற்றும் அதன் அதிர்வெண்ணை மாற்றலாம், மேலும், வலதுபுறத்தில் உள்ள பேனலில், எங்கள் MK பற்றிய சில தகவல்களைக் காண்கிறோம்: அதன் அதிகபட்ச அதிர்வெண், நினைவக திறன் (EEPROM, RAM, FLASH). இப்போது Atmega8 இல் டேட்டாஷீட்டைத் திறந்து, பக்கம் 203 (பொதுப் பதிவுகளின் பட்டியல்) மற்றும் 205 (கட்டளைகளின் பொதுவான பட்டியல்) மற்றும் உங்கள் நிரலை எழுதத் தொடங்குங்கள்.
நினைவில் கொள்ளுங்கள், சிமுலேட்டருடன் பரிசோதனை செய்ய பயப்பட வேண்டாம், அது உடைக்காது!


வணக்கம்.

இந்த கட்டுரை Arduino இலிருந்து "வளர்ந்து" மற்றும் "தீவிர" மைக்ரோகண்ட்ரோலர் நிரலாக்க உலகில் அடியெடுத்து வைக்கத் தயாராக இருப்பதாக நம்புபவர்களை ஈர்க்கும். நீங்கள் "உங்கள் புரோகிராமரின் திறன்களை மேம்படுத்துவீர்கள்" என்பதற்கு கூடுதலாக, உங்கள் திட்டங்களுக்கு எந்த மைக்ரோகண்ட்ரோலரையும் தேர்வு செய்ய உங்களுக்கு வாய்ப்பு கிடைக்கும், மேலும் நிரல்களின் வேகத்தையும் அவை ஆக்கிரமித்துள்ள நினைவகத்தின் அளவையும் நிச்சயமாக நீங்கள் பாராட்டுவீர்கள்.

எல்லாம் விவரிக்கப்படும் (   க்கு), தொடக்கத்தில் இருந்து இறுதி வரை, - தேவையான மென்பொருளை நிறுவுதல் மற்றும் தயாரித்தல், எளிமையான "க்ரோமோவ்" புரோகிராமரின் அசெம்பிளி (பயப்பட வேண்டாம், மூன்று டையோட்கள் மற்றும் ஏழு மின்தடையங்கள் மட்டுமே உள்ளன), ஏவிஆர் ஸ்டுடியோவில் எம்கே ஃபார்ம்வேர் மற்றும் எழுதும் குறியீடு. முழு செயல்முறையும் எடுத்துக்காட்டுகள் மற்றும் எடுத்துக்காட்டுகளுடன் இருக்கும்.

இப்போதே முன்பதிவு செய்கிறேன்: கணினியில் COM போர்ட் பொருத்தப்பட்டிருக்க வேண்டும் (USB முதல் COM அடாப்டர் சரியாக வேலை செய்யாது). உங்கள் கணினியில் பின்புறத்தில் அத்தகைய இணைப்பு இல்லை என்றால், அது மதர்போர்டில் இருக்கலாம் (பின்கள் வடிவில்), பின்னர் எல்லாவற்றையும் இந்த "வெளியேற்றம்" மூலம் தீர்க்க முடியும்.

ஐயோ, COM இல்லாத மடிக்கணினிகளின் உரிமையாளர்களுக்கு, கட்டுரை கல்வி ஆர்வத்தை மட்டுமே கொண்டுள்ளது.

எனவே, ஆரம்பிக்கலாம்…

உங்களுக்கு என்ன தேவைப்படும்?

"மென்மையான"


UniProf- பல்வேறு ATmega மைக்ரோகண்ட்ரோலர்களை ஒளிரச் செய்வதற்கான ஒரு உலகளாவிய நிரல், எளிய மற்றும் வசதியானது, மற்றும் மிக முக்கியமாக, எங்கள் புரோகிராமருடன் சரியாக வேலை செய்கிறது. ஆசிரியர் ரஷ்ய டெவலப்பர் மிகைல் நிகோலேவ் ஆவார்.

நிச்சயமாக, நீங்கள் AVR ஸ்டுடியோவிலிருந்து MK ஐ ப்ளாஷ் செய்யலாம், ஆனால் இதற்கு உங்களுக்கு ஒரு சிறப்பு புரோகிராமர் தேவை. எனவே, நாங்கள் ஸ்டுடியோவில் குறியீட்டை எழுதுவோம், அதன் விளைவாக வரும் ஹெக்ஸ் கோப்புகளை யூனிப்ரோஃப் மூலம் எங்கள் வீட்டில் தயாரிக்கப்பட்ட புரோகிராமரைப் பயன்படுத்தி ப்ளாஷ் செய்வோம். கூடுதலாக, கட்டளை வரியிலிருந்து ஃபார்ம்வேரை ஒளிரும் முறை விவரிக்கப்படும்.

லினக்ஸ் பயனர்கள் மெய்நிகர் இயந்திரம் அல்லது ஒயின் ஒன்றைப் பயன்படுத்த வேண்டும். ஒயின் மூலம் இது எனக்கு வேலை செய்யவில்லை, என்னால் துறைமுகத்தைப் பார்க்க முடியாது, மேலும் நான் அதை மெய்நிகர் இயந்திரத்தில் முயற்சிக்கவில்லை.

  ஒயினில் குறைபாடற்ற முறையில் செயல்படுகிறது (டெபியன் 8.5, ஒயின் 1.6).

அனைத்து மென்பொருள்களும் இலவசம்.

"இரும்பு"

நாங்கள் சோதனைகளை நடத்துவோம் Arduino ப்ரோ மினி ATmega328 சிப் உடன். குவார்ட்ஸ் அதிர்வெண் (8/16MHz), அதே போல் மின்னழுத்தம் (3.3/5v), ஒரு விஷயமே இல்லை. (கீழே பார்)

எதிர்காலத்தில் நீங்கள் பல்வேறு Atmel மைக்ரோகண்ட்ரோலர்களை நிரல் செய்வீர்கள், ஆனால் முதல் முறையாக இந்த போர்டு சரியாக உள்ளது. இது நல்லது, ஏனென்றால் இது நடைமுறையில் குறைந்தபட்ச வயரிங் மற்றும் சாலிடர் ஊசிகளுடன் ஒரு வெற்று கட்டுப்படுத்தி. உங்களுக்கு என்ன தேவை.

மைக்ரோகண்ட்ரோலர்களில் அடையாளங்கள் பற்றி

பெயருக்குப் பிறகு எண்கள் உள்ளன, அவை பெரும்பாலும் நினைவகத்தின் அளவைக் குறிக்கின்றன.

எண்களுக்குப் பிறகு உள்ள கடிதம் விநியோக மின்னழுத்த அளவுருக்களைக் குறிக்கிறது.

கடிதம் இல்லை- கட்டுப்படுத்தி விநியோக மின்னழுத்தம் 4.5-5.5 வோல்ட்டுகளுக்குள் உள்ளது.
எல்- குறைக்கப்பட்ட நேரத்தில் இயங்கும் கட்டுப்படுத்திகளின் பதிப்புகள் (குறைந்த)விநியோக மின்னழுத்தம் (2.7 - 5.5 வோல்ட்).
வி- குறைந்த விநியோக மின்னழுத்தத்தில் இயங்கும் கட்டுப்படுத்திகளின் பதிப்புகள் (1.8-5.5 வோல்ட்).
யு- அதி-குறைந்த விநியோக மின்னழுத்தத்தில் இயங்கும் கட்டுப்படுத்திகளின் பதிப்புகள் (0.7-5.5 வோல்ட்).
பி- குறைந்த சக்தி பதிப்புகள் (பவர்-டவுன் பயன்முறையில் 100 nA வரை).
- குறைக்கப்பட்ட தற்போதைய நுகர்வு, அனைத்து பதிப்புகளின் முழு கடிகார அதிர்வெண் வரம்பையும் உள்ளடக்கியது, விநியோக மின்னழுத்தம் 1.8-5.5 வோல்ட் (சில மாடல்களில், புதிய அம்சங்கள் மற்றும் புதிய பதிவேடுகள் சேர்க்கப்பட்டுள்ளன, அதே நேரத்தில் முந்தைய பதிப்புகளுடன் முழு இணக்கத்தன்மையை பராமரிக்கிறது).

மைக்ரோகண்ட்ரோலர்கள் « "மற்றும்" இல்லை- "பொதுவாக ஒரே கையொப்பம் இருக்கும், இது சில சிரமங்களை ஏற்படுத்துகிறது, ஏனெனில் ஃபியூஸ்-பிட்கள் வேறுபட்டவை.

எடுத்துக்காட்டுகள்:

ATmega8- நிரல் நினைவக திறன் 8 கிலோபைட்டுகள், விநியோக மின்னழுத்தம் 4.5-5.5 வோல்ட்.
ATmega8L- நிரல் நினைவக திறன் 8 கிலோபைட்டுகள், விநியோக மின்னழுத்தம் 2.7-5.5 வோல்ட்.
ATtiny43U- நினைவக திறன் 4 கிலோபைட்டுகள், மாற்றம் - 3, விநியோக மின்னழுத்தம் - 0.7-5.5 வோல்ட்.
ATtiny44A- நினைவக திறன் 4 கிலோபைட்டுகள், மாற்றம் - 4, குறைக்கப்பட்ட தற்போதைய நுகர்வு, விநியோக மின்னழுத்தம் 1.8-5.5 வோல்ட்.

கடிதம் இல்லாத ஒரு கட்டுப்படுத்தி குறைந்த விநியோக மின்னழுத்தத்தைக் கொண்டிருக்கலாம் (1.7 அல்லது 1.8 வோல்ட்). இது தரவுத்தளத்தில் தெளிவுபடுத்தப்பட வேண்டும்.

ATtiny841- நினைவக திறன் 8 கிலோபைட்டுகள், மாற்றம் - 41, விநியோக மின்னழுத்தம் - 1.7-5.5 வோல்ட்.

ஹைபனுக்குப் பிறகு, மைக்ரோகண்ட்ரோலர் பதிப்பு குறிக்கப்படுகிறது, இது கட்டுப்படுத்தியின் அதிகபட்ச அதிர்வெண்ணைக் குறிக்கும் எண்களைக் கொண்டுள்ளது. (சரியான விநியோக மின்னழுத்தத்தில்), மற்றும் வீட்டு விருப்பம், இயக்க வெப்பநிலை வரம்பு மற்றும் உற்பத்தி அம்சங்கள் ஆகியவற்றைக் குறிக்கும் கடிதங்களிலிருந்து.

அதிர்வெண்ணைத் தொடர்ந்து ஒன்று அல்லது இரண்டு எழுத்துக்கள் வீட்டு வகையைக் குறிக்கின்றன:

UniProf
ஒரு நிரலை எழுதுவது பாதிப் போர்; நீங்கள் அதை எப்படியாவது கட்டுப்படுத்தியில் செருக வேண்டும். எனவே இதில் அதிக கவனம் செலுத்துவோம்.

உங்கள் Arduino நிலையான Blink உடன் ஏற்றப்பட்டிருந்தால் நன்றாக இருக்கும் (அது தொழிற்சாலையில் இருந்து வருகிறது).

UniProf ஐ துவக்குவோம்... ஒருவேளை பின்வரும் சாளரம் பாப் அப் செய்யும்:

இது LPT போர்ட்டுடன் இணைக்கப்பட்டுள்ளது, எனவே கிளிக் செய்யவும் சரி.

நிரல் சாளரம் பின்னர் திறக்கும்:

போர்ட் சரியாக தேர்ந்தெடுக்கப்படவில்லை என்றால், ஒரு சாளரம் தோன்றும்...

சரி என்பதைக் கிளிக் செய்து, விரும்பிய போர்ட்டைத் தேர்ந்தெடுக்கவும்.

MK தானாகவே கண்டறியப்படவில்லை என்றால், கையேடு தேர்வுடன் ஒரு சாளரம் தோன்றும்:

துரதிருஷ்டவசமாக பட்டியலில் இல்லை atmega328, எனவே நாங்கள் தேர்வு செய்கிறோம் மெகா32 (அவை அதே அளவு ஃபிளாஷ் நினைவகத்தைக் கொண்டுள்ளன) மற்றும் அழுத்தவும் சரி.

இதற்குப் பிறகு, தெரியாத வார்த்தைக்கு பதிலாக, இணைக்கப்பட்ட கட்டுப்படுத்தி தோன்றும்...

32Kஃப்ளாஷ் நினைவகத்தின் அளவு, மற்றும் 1024 - EEPROM தொகுதி.

இப்போது, ​​எல்லாம் படத்தில் உள்ளது போல் இருந்தால், உதவி   என்பதைத் திறந்து, அதில் எழுதப்பட்டுள்ளதை கவனமாகப் படியுங்கள். ஆசிரியர் மிகவும் சுருக்கமாக இருந்தார், எனவே இது அதிக நேரம் எடுக்காது. இதுவரை எந்த பொத்தான்களையும் அழுத்த வேண்டாம்.

நீங்கள் சந்தித்தீர்களா? நல்லது, இப்போது நாம் செல்லலாம். EEPROM க்கு அடுத்துள்ள பெட்டியைத் தேர்வுநீக்கவும், மாற்றப்பட்ட இடைமுகத்தைக் காண்பீர்கள்:

EEPROM தேர்வுப்பெட்டியைத் தேர்வுசெய்த பிறகு, இந்த நினைவகப் பகுதியைப் படிக்கவும் எழுதவும் முடியாது.

நாங்கள் ஹெக்ஸ் கோப்புகளுடன் செயல்படுவதால், "செக்மார்க்குகளை" அகற்றுவோம் பொதுமற்றும் BIN, மற்றும் பெட்டியையும் சரிபார்க்கவும் பிரேக்!, இது படிக்க/எழுதும் நேரத்தை அதிகரிக்கும், ஆனால் நிலைத்தன்மையை அதிகரிக்கும்.

செயல்முறை வேகமாக இல்லை, எனவே நீங்கள் காத்திருக்க வேண்டும். நீல சதுரங்கள் கீழே ஊர்ந்து செல்லும் மற்றும் கீழ் வலது மூலையில் எண்கள் கணக்கிடப்படும். முதல் பாஸ் புரோகிராம் பகுதியைப் படிக்கும், இரண்டாவது EEPROM ஐப் படிக்கும்.

என்னிடம் ஒரு புதிய Arduino உள்ளது, அதில் ஒரு நிலையான பிளிங்க் கட்டப்பட்டுள்ளது (புரோகிராமர் இணைக்கப்பட்டால், டையோடு சிமிட்டுவதை நிறுத்தும்). உங்களிடம் அதே விஷயம் இருந்தால், பின்வரும் படம் தோன்றும்:

வலதுபுறத்தில் EEPROM இல் எதுவும் இல்லை என்பதையும், இடதுபுறத்தில், நிரலில் பதிவுசெய்யப்பட்ட நிரல் இருப்பதையும் காண்கிறோம். (நான் சொன்னது போல், இது பிளிங்க்). தரவு தீரும் வரை ஸ்லைடரை உருட்ட கீழ் அம்புக்குறியைப் பயன்படுத்தவும்...

...இப்போது இறுதிவரை உருட்டவும். நீங்கள் கூடுதல் தரவைப் பார்ப்பீர்கள் - இது Arduino துவக்க ஏற்றி.

இப்போது எனது கட்டுரையிலிருந்து ஓய்வு எடுத்து எம்.கே.யின் கட்டமைப்பைப் பற்றி படிக்க நான் முன்மொழிகிறேன், இது பொருள் பற்றிய உங்கள் புரிதலை பெரிதும் அதிகரிக்கும். எல்லாம் மிக நன்றாகவும் தெளிவாகவும் எழுதப்பட்டுள்ளது. சரி, நீங்கள் அதைப் படித்தவுடன், மீண்டும் வாருங்கள், தொடரலாம்...

தேர்வுநீக்கவும் EEPROM. எங்களுக்கு இது உண்மையில் தேவையில்லை, ஆனால் ஒரு "டிக்" உள்ளது என்பது தெளிவாகும். பிரேக்!

இப்போது கன்ட்ரோலரில் உள்ள ஃபார்ம்வேர் அனைத்தையும் சேமிப்போம், இதன் மூலம் சோதனைகளுக்குப் பிறகு அதன் அசல் நிலைக்குத் திரும்பலாம்.

  பொத்தானை அழுத்தி, ஃபார்ம்வேரைச் சேமித்து, அதை இப்படி அழைக்கவும் - origProMini328.hex. அவ்வளவுதான், இப்போது உங்களிடம் காப்புப்பிரதி உள்ளது.

... பின்னர் ஏற்கனவே தெரிந்த வாசிப்பு பொத்தானைக் கிளிக் செய்யவும். இதற்குப் பிறகு, PROGRAM இல் உள்ள அனைத்து செல்களும் காலியாக இருப்பதை நீங்கள் காண்பீர்கள். நிரல் மட்டும் அகற்றப்பட்டது, ஆனால் Arduino துவக்க ஏற்றி.
அதாவது, இப்போது நீங்கள் பாரம்பரிய முறையைப் பயன்படுத்தி ஓவியங்களைப் பதிவேற்ற முடியாது. பின்னர், நீங்கள் விரும்பினால், உங்கள் கையின் லேசான அலையுடன், காப்புப்பிரதியிலிருந்து அனைத்தையும் மீட்டெடுக்கவும்.

இப்போது ஏவிஆர் ஸ்டுடியோவில் மட்டுமே எழுதப்பட்ட அதே “பிளிங்க்” மூலம் கன்ட்ரோலரை ப்ளாஷ் செய்வோம்.

குறியீடு இது போல் தெரிகிறது:

#F_CPU 16000000UL ஐ வரையறுக்கவும் # அடங்கும் #சேர்க்கிறது #PIN_PB5 5 // PB5 (Arduino - D13) #PIN_PB5_PORT PORTB ஐ வரையறுக்கவும் #PIN_PB5_DDR DDRB இன்ட் மெயின்(செல்லம்) (PIN_PB5_DDR = 1)<< PIN_PB5; // устанавливаем PIN_PB5 (PB5 (ардуина - D13)) как ВЫХОД while(1) { PIN_PB5_PORT = 1 << PIN_PB5; _delay_ms(300); PIN_PB5_PORT = 0 << PIN_PB5; _delay_ms(300); } return 0; }
நீங்கள் 8 மெகா ஹெர்ட்ஸ் குவார்ட்ஸுடன் ஒரு Arduino ஐப் பயன்படுத்தினால், இதில் எந்தத் தவறும் இல்லை, டையோடு அடிக்கடி ஒளிரும்.

இது எவ்வளவு இடத்தை எடுக்கும் என்பது இங்கே:

AVRDude

Uniprof, பல ஒத்த நிரல்களைப் போலவே, AVRDude நிரலில் ஒரு வரைகலை சேர்க்கை மட்டுமே (AVR டவுன்லோடர்-அப்லோடர்), இது மைக்ரோகண்ட்ரோலரில் மேலே விவரிக்கப்பட்ட அனைத்து செயல்களையும் செய்கிறது.
ஏனெனில் AVRDudeஅதன் சொந்த வரைகலை இடைமுகம் இல்லை; நீங்கள் அதை கட்டளை வரியில் இருந்து வேலை செய்ய வேண்டும். இது சிலருக்கு சிரமமாகத் தோன்றலாம், ஆனால் இது நேர்மாறானது; கன்சோலில் இருந்து வேலை செய்வது மிகச் சிறந்தது. வசதியானது, எளிமையானது மற்றும் எந்த OS உடன் இணைக்கப்படவில்லை, ஏனெனில் avrdude எல்லாவற்றுக்கும் இருக்கலாம். இப்போது நீங்கள் இதைப் பார்ப்பீர்கள்.

பயனர்களுக்கு

அவ்ருடே AVR கருவித்தொகுப்பில் சேர்க்கப்பட்டுள்ளது, எனவே அதை நிறுவவும் (AVR ஸ்டுடியோவை நிறுவிய பின்)கட்டுரையின் ஆரம்பத்தில் எழுதப்பட்டபடி.

சிடி\
... வட்டின் மூலத்திற்குச் செல்லவும் உடன்.

கட்டளையை உள்ளிடுவதன் மூலம்:

அப்படி என்றால் avrdudeசென்று தொடர தயாராக உள்ளது.

இப்போது நாம் நமது புரோகிராமரை உள்ளமைவு கோப்பில் சேர்க்க வேண்டும் avrdude (C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin\ avrdude.conf) . அதை நிரலில் திறக்கவும் நோட்பேட்++"புரோகிராமர் வரையறைகள்" என்ற கல்வெட்டுக்குப் பிறகு, இந்த வரிகளைச் சேர்க்கவும்:

புரோகிராமர் ஐடி = "க்ரோமோவ்"; desc = "serial port banging, reset=dtr sck=rts mosi=txd miso=cts"; வகை = serbb; மீட்டமை = 4; scck = 7; மோசி = 3; மிசோ = 8; ;
பிட்-பேங்கிங்.

கோப்பைச் சேமித்து மூடவும்; அது இனி தேவையில்லை.

முனையத்திற்குத் திரும்பி, MK மற்றும் புரோகிராமருக்கு இடையேயான தொடர்பைச் சரிபார்க்க கட்டளையை வழங்கவும்:

Avrdude -n -c gromov -P com1 -p m328p
உங்களிடம் வேறு காம் போர்ட் இருக்கலாம்.

நிறுவு avrdude

Sudo apt நிறுவ avrdude

கட்டளையை உள்ளிடுவதன் மூலம்:

உதவித் தகவலைப் பார்க்க வேண்டும்.

அப்படி என்றால் avrdudeவேலைக்கு தயார்.

துறைமுகத்தை உள்ளமைக்கவும்:

Sudo stty 9600 ignbrk -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo noflshஒவ்வொரு கணினி மறுதொடக்கம் செய்த பிறகும் இதைச் செய்ய வேண்டும் அல்லது அதை rc.local இல் சேர்க்கவும்.

/dev/ttyS0 எங்கே com1, /dev/ttyS1 - com2முதலியன
எதிர்காலத்தில், அணிகளில் நான் எழுதுவேன் /dev/ttyS0, உங்களிடம் இருக்கலாம் /dev/ttyS1முதலியன

உள்ளமைவு கோப்பில் புரோகிராமரைச் சேர்க்கவும் /etc/avrdude.conf

சுடோ நானோ /etc/avrdude.conf

“புரோகிராமர் வரையறைகள்” என்பதற்குப் பிறகு பின்வரும் வரிகளைச் சேர்க்கவும்:

புரோகிராமர் ஐடி = "க்ரோமோவ்"; desc = "serial port banging, reset=dtr sck=rts mosi=txd miso=cts"; வகை = "செர்ப்"; மீட்டமை = 4; scck = 7; மோசி = 3; மிசோ = 8; ;
புரோகிராமர் பிட்-பேங்கிங் தொழில்நுட்பத்தைப் பயன்படுத்துகிறார்.

நகலெடுக்கும் போது, ​​மேற்கோள்கள் வெறும் மேற்கோள்களாக இருப்பதை உறுதி செய்து கொள்ளுங்கள், இல்லையெனில் அவை மாறலாம் (குறியீடுகளில் உள்ள வேறுபாடு காரணமாக) மற்றும் avrdude சத்தியம் செய்யும்.

கோப்பை சேமித்து மூடவும்.

MK க்கும் புரோகிராமருக்கும் இடையிலான இணைப்பைச் சரிபார்க்க கட்டளையை வழங்கவும்:

Sudo avrdude -n -c gromov -P /dev/ttyS0 -p m328p

இணைப்பு இருந்தால், பதில் இப்படி இருக்கும்:

இங்குதான் இயக்க முறைமைகளுக்கு இடையிலான வேறுபாடுகள் முடிவடையும் மற்றும் கட்டளைகள் நகலெடுக்கப்படுகின்றன.

கட்டளைக்கு ஒரு வாதத்தைச் சேர்க்கவும் -விஅல்லது -வி வி (எந்த கட்டளைகளிலும் சேர்க்கலாம்)முழுமையான தகவலைக் காட்ட:

Avrdude -n -v -c gromov -P com1 -p m328p ###WIN###
sudo avrdude -n -v -c gromov -P /dev/ttyS0 -p m328p ###Linux###


விண்டோஸிலும், லினக்ஸிலும் ஒரே மாதிரியாக இருப்பதால், இனிமேல் Win இல் மட்டுமே ஸ்கிரீன்ஷாட் எடுப்பேன் என்பது Avdude இன் முடிவு.

இங்கே கூடுதல் தகவல்கள் உள்ளன, எடுத்துக்காட்டாக, என்ன உருகிகள் நிறுவப்பட்டுள்ளன என்பதை நீங்கள் பார்க்கலாம். இங்கே அவை ஹெக்ஸாடெசிமலில் வெளியீடு ஆகும் (ஹெக்ஸ்)எண்கள். எடுத்துக்காட்டாக, hfuse 0xDA, பைனரியில் இது போல் தெரிகிறது - . அதாவது, இவை வரைகலை இடைமுகங்களில் சரிபார்க்கப்பட்ட அதே பிட்கள்.

நீங்கள் உருகிகளை கையாளும் போது, ​​ATmega மைக்ரோகண்ட்ரோலர்களில் உருகிகள் தலைகீழாக இருக்கும் என்பதை நினைவில் கொள்ளுங்கள். அது 0 - இது அன்றுயுசெனோ, மற்றும் 1 - ஆஃப்யுசெனோ. இது ஆன்லைன் கால்குலேட்டர்களில் குழப்பத்தை ஏற்படுத்துகிறது (கீழே காண்க).

பகுதியிலிருந்து ஃபார்ம்வேரைப் படிப்போம் ஒளிரும் (யூனிப்ரோஃபில் உள்ள புரோகிராம் போலவே)கட்டளை:

Avrdude -c gromov -P com1 -p m328p -U flash:r:readfl.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:r:readfl.txt:h ###Linux###

uniprof இல் நிரலில் குறியீடு காட்டப்பட்டது, ஆனால் இங்கே அது ஒரு கோப்பில் எழுதப்படும்.

நிலைபொருள் படித்து கோப்பில் எழுதப்பட்டது readfl.txt. கடிதம் (ஹெக்ஸ்)இறுதியில், தரவு ஹெக்ஸாடெசிமல் வடிவத்தில் எழுதப்பட வேண்டும் என்பதைக் குறிக்கிறது. கடிதம் எழுதினால் பி (பைனரி), பைனரி அமைப்பில் எழுதப்படும், மற்றும் என்றால் ஆர் (பச்சையாக), பின்னர் தரவு "மூல" வடிவத்தில் இருக்கும் (kryakozyabra).

இங்கிருந்து வெற்றி பயனர்கள் வட்டின் மூலத்தில் அமைந்துள்ளதாகக் கருதப்படுகிறது உடன் (சி:\), மற்றும் Linux பயனர்கள் தங்கள் முகப்பு கோப்புறையிலிருந்து வேலை செய்கிறார்கள், எனவே கோப்புகள் அங்கு சேமிக்கப்படும் (வேறுவிதமாகக் குறிப்பிடப்படாவிட்டால்). MK இல் பதிவேற்றப்படும் ஃபார்ம்வேர் அங்கே இருக்க வேண்டும்.

வெற்றி பெற, கோப்பு இங்கே C:\readfl.txt மற்றும் லினக்ஸுக்கு, /home/user/readfl.txt இல் இருக்கும். இந்தக் கோப்பைத் திறந்து பார்க்கலாம்.

EEPROM ஐப் படித்தல்:

Avrdude -c gromov -P com1 -p m328p -U eeprom:r:reader.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U eeprom:r:reader.txt:h ###Linux###

ஃபிளாஷ் மற்றும் ஈப்ரோமை ஒன்றாகப் படித்தல்:

Avrdude -c gromov -P com1 -p m328p -U flash:r:readfl.txt:h -U eeprom:r:reader.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:r:readfl.txt:h -U eeprom:r:reader.txt:h ###Linux###

கட்டுப்படுத்தியை அழிக்கிறது:

Avrdude -e -c gromov -P com1 -p m328p ###WIN###
sudo avrdude -e -c gromov -P /dev/ttyS0 -p m328p ###Linux###

“ரீசெட்” பின்னை துண்டிக்கவும் - டையோடு சிமிட்டாது, நிரல் அழிக்கப்படும்.

முன்பு பதிவிறக்கம் செய்யப்பட்ட கோப்புடன் MK ஐ ப்ளாஷ் செய்வோம் 328test.hex. வட்டின் வேரில் உள்ளது சி(c:\328test.hex) விண்டோஸில் அல்லது லினக்ஸில் ஹோம் கோப்புறையில் (/home/user/328test.hex).

Avrdude -c gromov -P com1 -p m328p -U flash:w:328test.hex ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:w:328test.hex ###Linux###

இப்போது நீங்கள் "ரீசெட்" ஐ அணைத்தால், கட்டுப்படுத்தி உயிர்ப்பிக்கும்.

குறிப்பு. வழியாக MK ஒளிரும் போது avrdude, கட்டுப்படுத்தியை அழிக்க வேண்டிய அவசியமில்லை, நிரல் அதையே செய்கிறது. இருப்பினும், நீங்கள் அளவுருவைக் குறிப்பிட்டால் -டி, பின்னர் MK தானாகவே சுத்தம் செய்யப்படாது.

EEPROM நிலைபொருள்:

Avrdude -c gromov -P com1 -p m328p -U eeprom:w:eeprom.hex ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U eeprom:w:eeprom.hex ###Linux###

அனைத்து உருகிகளையும் படித்தல்:

Avrdude -c gromov -P com1 -p m328p -U hfuse:r:hfuse.txt:h -U lfuse:r:lfuse.txt:h -U lock:r:lock.txt:h -U efuse:r:efuse .txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U hfuse:r:hfuse.txt:h -U lfuse:r:lfuse.txt:h -U lock:r:lock.txt:h -U efuse :r:efuse.txt:h ###Linux###

சில கட்டுப்படுத்திகளில் உருகி இருக்காது.

குறைந்த உருகியை மட்டும் படித்தல்:

Avrdude -c gromov -P com1 -p m328p -U lfuse:r:lfuse.txt:h ###WIN###
sudo avrdude -c gromov -P com1 -p m328p -U lfuse:r:lfuse.txt:h ###Linux###

குறைந்த உருகி கடிகார சமிக்ஞை மூலத்தைத் தேர்ந்தெடுப்பதற்குப் பொறுப்பாகும் (உள், வெளிப்புறம்), அதன் அதிர்வெண் மற்றும் சக்தியைப் பயன்படுத்திய பிறகு கட்டுப்படுத்தி தொடங்கும் முன் இடைநிறுத்தம். இப்போது உங்களிடம் மதிப்பு எழுதப்பட்டுள்ளது - 0xff, இது 8 மெகா ஹெர்ட்ஸ் மற்றும் அதற்கு மேல் உள்ள வெளிப்புற குவார்ட்ஸுக்கு ஒத்திருக்கிறது.

இப்போது நாம் மற்றொரு ஃப்யூஸை ப்ளாஷ் செய்வோம், இது உங்கள் ATmeg ஐ உள் 8 மெகா ஹெர்ட்ஸ் ஜெனரேட்டரிலிருந்து வேலை செய்ய மாற்றும்.

Avrdude -c gromov -P com1 -p m328p -U lfuse:w:0xe2:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U lfuse:w:0xe2:m ###Linux###

உங்களிடம் 16 மெகா ஹெர்ட்ஸ் அர்டுயினோ இருந்தால், டையோடு இரண்டு மடங்கு மெதுவாக ஒளிரும்.
எதிர்காலத்தில், AVR ஸ்டுடியோவில் குறியிடும்போது, ​​நீங்கள் 8 மெகா ஹெர்ட்ஸ் அதிர்வெண்ணைக் குறிப்பிடலாம் மற்றும் குவார்ட்ஸை அன்சோல்டர் செய்யலாம், இதன் மூலம் உங்கள் வசம் மேலும் இரண்டு இலவச டிஜிட்டல் பின்களைப் பெறலாம்.

ஆனால் அது பின்னர், இப்போது முந்தைய உருகியை ஒளிரச் செய்வதன் மூலம் எல்லாவற்றையும் திரும்பப் பெறுவோம்:

Avrdude -c gromov -P com1 -p m328p -U lfuse:w:0xff:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U lfuse:w:0xff:m ###Linux###

டையோடு சரியாக ஒளிரும்.

உருகிகளை தனித்தனியாக அல்லது ஒன்றாக ஒளிரச் செய்யலாம்:

Avrdude -c gromov -P com1 -p m328p -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m ###Linux###
இந்த கட்டளைகளை கொடுக்க வேண்டிய அவசியமில்லை. தெளிவுக்காக அவற்றை முன்வைக்கிறேன்.

எதிர்காலத்தில், நீங்கள் பிற கட்டுப்படுத்திகளைப் பயன்படுத்த வேண்டியிருக்கும் போது, ​​ஆன்லைன் கால்குலேட்டரில் உள்ள பெட்டிகளைச் சரிபார்த்து மதிப்புகளைப் பெறுவீர்கள் (இணைப்பு மேல் இடது மூலையில் உள்ளது)ஹெக்ஸ் வடிவத்தில் மற்றும் அதை ப்ளாஷ் செய்யவும்.

இப்போது எஞ்சியிருப்பது அளவுருக்களைக் கண்டுபிடிப்பதுதான் avrdudeமற்றும் நீங்கள் இறுதி பகுதிக்கு செல்லலாம்.

-சி க்ரோமோவ்- புரோகிராமர் வகை, அல்லது அது கட்டமைப்பில் எழுதப்பட்ட பெயர் (avrdude.conf).
-பி காம்1- சரி, இங்கே எல்லாம் தெளிவாக உள்ளது.
-p m328p- பதவி வகை எம்.கே.
-யு- இந்த விருப்பத்திற்குப் பிறகு நினைவக பகுதி குறிக்கப்படுகிறது (ஃபிளாஷ், ஈப்ரோம், எக்ஸ்ஃப்யூஸ்), எந்த செயல்களும் செய்யப்படும் (ஆர் - படிக்க, வ - எழுத).
பெருங்குடல்கள் பிரிப்பான்களாக செயல்படுகின்றன.

இங்கே, மைக்ரோகண்ட்ரோலர்களின் பெயர்கள் மற்றும் அவற்றின் மாற்றுப்பெயர்கள், புரோகிராமர்கள் மற்றும் பிற விருப்பங்களுடன்.

புனைப்பெயர்கள் எம்.கே

uc3a0512- AT32UC3A0512
c128- AT90CAN128
c32- AT90CAN32
c64- AT90CAN64
pwm2- AT90PWM2
pwm2b- AT90PWM2B
pwm3- AT90PWM3
pwm316- AT90PWM316
pwm3b- AT90PWM3B
1200 - AT90S1200 (****)
2313 - AT90S2313
2333 - AT90S2333
2343 - AT90S2343 (*)
4414 - AT90S4414
4433 - AT90S4433
4434 - AT90S4434
8515 - AT90S8515
8535 - AT90S8535
usb1286- AT90USB1286
usb1287- AT90USB1287
usb162- AT90USB162
usb646- AT90USB646
usb647- AT90USB647
usb82- AT90USB82
மீ103- ATmega103
மீ128- ATmega128
மீ1280- ATmega1280
மீ1281- ATmega1281
m1284p- ATmega1284P
m1284rfr2- ATmega1284RFR2
மீ128rfa1- ATmega128RFA1
மீ128rfr2- ATmega128RFR2
மீ16- ATmega16
மீ161- ATmega161
மீ162- ATmega162
மீ163- ATmega163
m164p- ATmega164P
மீ168- ATmega168
m168p- ATmega168P
மீ169- ATmega169
m16u2- ATmega16U2
மீ2560- ATmega2560 (**)
மீ2561- ATmega2561 (**)
மீ2564rfr2- ATmega2564RFR2
மீ256rfr2- ATmega256RFR2
மீ32- ATmega32
m324p- ATmega324P
m324pa- ATmega324PA
மீ325- ATmega325
மீ3250- ATmega3250
மீ328- ATmega328
m328p- ATmega328P
மீ329- ATmega329
மீ3290- ATmega3290
m3290p- ATmega3290P
m329p- ATmega329P
m32u2- ATmega32U2
m32u4- ATmega32U4
மீ406- ATMEGA406
மீ48- ATmega48
m48p- ATmega48P
மீ64- ATmega64
மீ640- ATmega640
m644- ATmega644
m644p- ATmega644P
m644rfr2- ATmega644RFR2
மீ645- ATmega645
மீ6450- ATmega6450
மீ649- ATmega649
m6490- ATmega6490
m64rfr2- ATmega64RFR2
மீ8- ATmega8
m8515- ATmega8515
மீ8535- ATmega8535
மீ88- ATmega88
m88p- ATmega88P
m8u2- ATmega8U2
t10-ATtiny10
t11- ATtiny11
t12- ATtiny12
t13- ATtiny13
t15-ATtiny15
t1634- ATtiny1634
டி20- ATtiny20
t2313- ATtiny2313
t24- ATtiny24
t25- ATtiny25
t26- ATtiny26
t261- ATtiny261
t4- ATtiny4
t40- ATtiny40
t4313-ATtiny4313
t43u- ATtiny43u
t44- ATtiny44
t45- ATtiny45
t461- ATtiny461
t5- ATtiny5
t84- ATtiny84
t85- ATtiny85
t861- ATtiny861
t88- ATtiny88
t9- ATtiny9
x128a1- ATxmega128A1
x128a1d- ATxmega128A1revD
x128a1u- ATxmega128A1U
x128a3- ATxmega128A3
x128a3u- ATxmega128A3U
x128a4- ATxmega128A4
x128a4u- ATxmega128A4U
x128b1- ATxmega128B1
x128b3- ATxmega128B3
x128c3- ATxmega128C3
x128d3- ATxmega128D3
x128d4- ATxmega128D4
x16a4- ATxmega16A4
x16a4u- ATxmega16A4U
x16c4- ATxmega16C4
x16d4- ATxmega16D4
x16e5- ATxmega16E5
x192a1- ATxmega192A1
x192a3- ATxmega192A3
x192a3u- ATxmega192A3U
x192c3- ATxmega192C3
x192d3- ATxmega192D3
x256a1- ATxmega256A1
x256a3- ATxmega256A3
x256a3b- ATxmega256A3B
x256a3bu- ATxmega256A3BU
x256a3u- ATxmega256A3U
x256c3- ATxmega256C3
x256d3- ATxmega256D3
x32a4- ATxmega32A4
x32a4u- ATxmega32A4U
x32c4- ATxmega32C4
x32d4- ATxmega32D4
x32e5- ATxmega32E5
x384c3- ATxmega384C3
x384d3- ATxmega384D3
x64a1- ATxmega64A1
x64a1u- ATxmega64A1U
x64a3- ATxmega64A3
x64a3u- ATxmega64A3U
x64a4- ATxmega64A4
x64a4u- ATxmega64A4U
x64b1- ATxmega64B1
x64b3- ATxmega64B3
x64c3- ATxmega64C3
x64d3- ATxmega64D3
x64d4- ATxmega64D4
x8e5- ATxmega8E5

லினக்ஸ் பயனர்கள் மதுவைப் பயன்படுத்தலாம்.

நீங்கள் ஏற்கனவே எல்லாவற்றையும் நிறுவியுள்ளீர்கள் என்று நம்புகிறேன், எனவே AVR ஸ்டுடியோவைத் தொடங்குவோம்...


இங்கே ஒரு புதிய திட்டத்தை உருவாக்க அல்லது பழையதை திறக்கும்படி கேட்கப்படுகிறோம். கிளிக் செய்யவும் புதிய திட்டம்


தேர்வு செய்யவும் ஏவிஆர் ஜிசிசி, நாங்கள் SI இல் எழுதுவோம், அசெம்பிளரில் அல்ல.
நாங்கள் திட்டத்திற்கு ஒரு பெயரைக் கொடுத்து பெட்டிகளைச் சரிபார்க்கிறோம்.
தேர்வு செய்யவும் இடம் (சி:\ டிரைவில் ஏவிஆர் கோப்புறையை உருவாக்கினேன்)திட்டங்களுடன் கூடிய கோப்புறைகள் தானாகவே அங்கு உருவாக்கப்படும்.
கிளிக் செய்யவும் அடுத்தது


தேர்வு செய்யவும் ஏவிஆர் சிமுலேட்டர், பிழைத்திருத்தத்தை அனுமதிக்கும் சிறப்பு புரோகிராமர் எங்களிடம் இல்லை, மேலும் எங்கள் மைக்ரோகண்ட்ரோலர் உள்ளது ATmega328p.
கிளிக் செய்யவும் முடிக்கவும்.

இந்த கையாளுதல்களுக்குப் பிறகு, ஸ்டுடியோ வேலைக்கு தயாராக உள்ளது.

இடதுபுறத்தில் திட்டத்திற்கான பாதைகள் உள்ளன. மையத்தில் ஒரு உரை திருத்தி உள்ளது, அதில் குறியீடு எழுதப்பட்டுள்ளது. வலதுபுறத்தில் கட்டுப்படுத்தி பதிவேடுகள் உள்ளன. கீழே இடதுபுறத்தில் பிழைத்திருத்த தகவல் உள்ளது.

பொத்தான்களில் நாங்கள் தற்போது ஆர்வமாக உள்ளோம் -

திட்டத்தை உருவாக்குங்கள்.
திட்டத்தை உருவாக்கி பிழைத்திருத்தத்தைத் தொடங்கவும்.
கோப்பை தொகுத்தல்.
சுத்தம் செய்தல்.
திட்ட அமைப்பு. எனவே அதை கிளிக் செய்யவும்...

இங்கே நீங்கள் MK வகையை மாற்றலாம், கடிகார அதிர்வெண்ணை அமைக்கலாம் (நாங்கள் அதை நேரடியாக குறியீட்டில் எழுதுவோம்), தேர்வுமுறை நிலை, அத்துடன் என்ன கோப்புகள் உருவாக்கப்படும் என்பதைத் தீர்மானிக்கவும்.
ஆர்வத்திற்கு இடதுபுறத்தில் உள்ள ஐகான்களைக் கிளிக் செய்து கிளிக் செய்யவும் ரத்து செய்.
இந்த மற்றும் பிற விருப்பங்களை நான் விளக்கமாட்டேன், ஆனால் பின்னர் ஒரு திறமையான விளக்கத்துடன் இணைப்பை வழங்குவேன்.

இப்போது கட்டுரையின் தொடக்கத்தில் எழுதப்பட்ட குறியீட்டை நகலெடுத்து எடிட்டரில் ஒட்டவும்:

கடிகார அதிர்வெண்ணை குறியீட்டில் குறிப்பிட்டுள்ளோம், ஏனெனில் நூலகத்திற்கு அது தேவைப்படுகிறது தாமதம்.h.

உருவாக்கம் வெற்றிகரமாக இருந்தது, பிழைகள் அல்லது எச்சரிக்கைகள் எதுவும் இல்லை.

இப்போது நம் வழியில் செல்வோம் C:\AVR\my328\default\, நாம் உருவாக்கிய ஹெக்ஸ் கோப்பை அங்கே காணலாம் - my328.hexமற்றும் அதை கட்டுப்படுத்தியில் ப்ளாஷ் செய்யவும். என்ன ஒளிர வேண்டும் (avrdude அல்லது uniprof)நீங்களே தேர்வு செய்யுங்கள்.

avrdude இல் இது இப்படி இருக்கும்:

Avrdude -c gromov -P com1 -p m328p -U flash:w:\AVR\my328\default\my328.hex ###WIN###
avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:w:my328.hex ###Linux###

"மீட்டமைப்பை" முடக்கி, வினாடிக்கு ஒருமுறை டையோடு சிமிட்டுவதைப் பார்க்கவும். கட்டளை வரியின் எளிமை மற்றும் வசதியை நான் உங்களுக்கு உணர்த்தியிருக்கிறேன் என்று நம்புகிறேன்.

Arduino ஐ மீண்டும் Arduino ஆக மாற்ற, உங்களிடம் காப்புப்பிரதி உள்ளது.

ஏற்கனவே மேலே எழுதப்பட்டதைப் போல, ஏவிஆர் ஸ்டுடியோவுடன் பணிபுரிவது பற்றிய விளக்கங்களுக்குச் செல்லமாட்டேன், அல்லது எஸ்ஐ மொழி பற்றிய பாடங்களைக் கொடுக்க மாட்டேன். முதலில், இது என்னுடைய திட்டம் அல்ல. (அர்டுயினோவில் இருந்து ஏவிஆர் ஸ்டுடியோவிற்கு மாறுவதற்கு உதவ விரும்பினேன்)

ஒரு IDE என்பது பல்வேறு டெம்ப்ளேட்டுகள், நூலகங்கள் மற்றும் பிழைத்திருத்த செயல்பாடுகளை உள்ளடக்கிய ஒரு ஒருங்கிணைந்த மேம்பாட்டு சூழலாகும். நாம் பேசினால், 2004 முதல் ஒரு சக்திவாய்ந்த மென்பொருள் தொகுப்பு, AVR ஸ்டுடியோ, அவர்களுக்காக உருவாக்கப்பட்டது.

முதல் பதிப்புகள்

ஸ்டுடியோவின் முதல் பதிப்புகளில் ஒரு அசெம்பிளர் சேர்க்கப்பட்டுள்ளது, நீங்கள் அதை முதல் அசெம்பிளிகளில் இருந்து பிரித்தெடுக்கலாம், ஆனால் பின்னர் இந்த திட்டம் கைவிடப்பட்டது, மேலும் C AVR முக்கிய மொழியாக தேர்ந்தெடுக்கப்பட்டது. கம்பைலர் ஒரு ஊதியம் மற்றும் மிகவும் தீவிரமான தயாரிப்பு IAR ஆகும். நீங்கள் இலவச WINAVR ஐ பதிவிறக்கம் செய்யலாம்; இதைச் செய்ய, ஸ்டுடியோவை நிறுவிய பின் அதை நிறுவ வேண்டும்.

குறிப்பு! AVR ஸ்டுடியோ 4 மற்றும் பிற பதிப்புகளை நிறுவிய பின்னரே இதைச் செய்வது நல்லது.

AVR ஸ்டுடியோ 4 (மேலே உள்ள படம்) நீண்ட காலமாக இடம்பெற்றது. பல மைக்ரோகண்ட்ரோலர் டெவலப்பர்கள் இந்த சிக்கலை எதிர்கொண்டனர். பின்னர், IDE ஆனது AVR ஸ்டுடியோ 5 ஆக மேம்படுத்தப்பட்டது. இடைமுகத்தைத் தவிர, சிறப்பு மாற்றங்கள் எதுவும் இல்லை, அதன் பிறகுதான் டெவலப்பர் நிறுவனம் தயாரிப்பை மறுபெயரிட்டு Atmel ஸ்டுடியோ 6 என மாற்றியது.

AVR ஸ்டுடியோ 5 சூழல் பின்வரும் மைக்ரோகண்ட்ரோலர்களை ஆதரித்தது:

  • ஏவிஆர்32;
  • XMEGA.

Atmel ஸ்டுடியோ 6 AVR ஸ்டுடியோ 5 இலிருந்து கணிசமாக வேறுபட்டது; பதிப்பில் மிகவும் குறிப்பிடத்தக்க கண்டுபிடிப்புகள்:

  1. மைக்ரோசாப்ட் விஷுவல் ஸ்டுடியோ 2010 ஏவிஆர் குடும்பத்துடன் இணைந்து பணியாற்றத் தொடங்கியது.
  2. AVR ஸ்டுடியோ 5 உடன் ஒப்பிடும்போது மேம்படுத்தப்பட்ட தொடரியல் சிறப்பம்சங்கள்.
  3. கட்டளைகளின் தொகுப்பின் குறிப்புகள் மற்றும் தானாக நிறைவு சேர்க்கப்பட்டது, இது வளர்ச்சி செயல்முறையை விரைவுபடுத்துகிறது.
  4. பொதுவாக, சுற்றுச்சூழலின் முழு செயல்பாடும் மிகவும் நம்பகமானதாகிவிட்டது.
  5. ARM Cortex-Mக்கான ஆதரவு சேர்க்கப்பட்டது.
  6. WinAVR தனித்தனியாக நிறுவப்பட வேண்டியதில்லை; GCC இப்போது நிறுவல் செயல்பாட்டின் போது நிறுவப்பட்டது, இளைய பதிப்புகளைப் போலல்லாமல்.

Atmel ஸ்டுடியோ 6 இல் நிரலின் பயனருக்கு சிறந்த முன்னேற்றம் ஏற்பட்டது, இது Atmel குடும்பங்களின் பிரபலத்தைப் பாதித்தது. இருப்பினும், கோப்பு பாதைகளில் ரஷ்ய எழுத்துக்களுக்கு போதுமான ஆதரவை அடைய முடியவில்லை.

தற்போதைய பதிப்பு - Atmel ஸ்டுடியோ 7

நான் பயன்படுத்திய வளர்ச்சி சூழல் விஷுவல் ஸ்டுடியோ தனிமைப்படுத்தப்பட்ட ஷெல் 2015; ஒருபுறம், இந்த தீர்வு விண்டோஸ் எக்ஸ்பியில் ஆதரிக்கப்படவில்லை, மறுபுறம், நிரலின் தோற்றம் மற்றும் அதன் செயல்பாடு இரண்டையும் மேம்படுத்த இந்த நடவடிக்கைகள் எடுக்கப்பட்டன.

Atmel ஸ்டுடியோ 7 இல் Arduino ஆதரவைச் சேர்ப்பது மிகவும் முக்கியத்துவம் வாய்ந்ததாக இருக்கலாம். இதன் பொருள் நீங்கள் எளிய ஓவியங்களின் தொகுப்பிலிருந்து அனைத்து C செயல்பாடுகள், பிழைத்திருத்தம், MCU சிமுலேட்டர் மற்றும் பிற செயல்பாடுகளைப் பயன்படுத்தலாம். Arduino மற்றும் Atmel ஸ்டுடியோ 7 ஆகியவற்றின் கலவையானது இந்த எளிய கற்றல் தளத்தின் வளர்ச்சியில் ஒரு புதிய சுற்றைக் கொடுத்தது.

Arduino உடன் Atmel ஸ்டுடியோவைப் படிப்பது, Arduino - Atmega மைக்ரோகண்ட்ரோலரின் இதயத்துடன் முழுமையான மற்றும் உற்பத்தித் தேர்ச்சி மற்றும் ஆழமான அறிமுகத்திற்குச் செல்வதற்கான வாய்ப்பை வழங்கும்.

கூடுதலாக, Atmel இணையதளத்தில் இருந்து LCDயை இயக்குவதற்கும் இணைப்பதற்கும் ஒரு தொகுப்பைப் பதிவிறக்கம் செய்யலாம். மாஸ்டரிங் செய்வதற்கான எடுத்துக்காட்டு, நீங்கள் LCD 1602 ஐப் பயன்படுத்தலாம்; இணையத்தில் பல பாடங்கள் உள்ளன, மேலும் டெவலப்பருக்கு 16 எழுத்துகள் மற்றும் 2 வரிகள் காட்சியில் உள்ளன.

எங்கு கற்க ஆரம்பிக்க வேண்டும்?

நிச்சயமாக, ஒரு புரோகிராமரை வாங்குவதன் மூலம் நீங்கள் தொடங்க வேண்டும்; மிகவும் பட்ஜெட்டுக்கு ஏற்றது USBASP ஆகும். Atmel Studio 7 இல் USBASP புரோகிராமர் ஆதரிக்கப்படவில்லை.


புரோகிராமர் மற்றும் AVRdude நிரலுக்கான இயக்கிகளைப் பதிவிறக்கி, அனைத்தையும் ஒன்றாகச் செய்ய, நீங்கள் கட்டளை வரி வழியாக கட்டளையைப் பயன்படுத்தலாம்:

"avrdude -c usbasp -p atmega32 -U flash:w: ஃபார்ம்வேர் கோப்பின் பெயர். ஹெக்ஸ் -U lfuse:w:0x6a:m -U hfuse:w:0xff:m"

மற்றும் atmel ஸ்டுடியோ 7 இல் ஒரு சுயவிவரத்தை உருவாக்குவதன் மூலம் அதன் ஆதரவை இயக்கவும் (தலைப்பு - வெளிப்புற கருவிகள்), மற்றும் வாதங்கள் உருப்படியில் "-c usbasp -p atmega32 -U flash:w:$(TargetName).hex" மற்றும் பலவற்றை உள்ளிடவும். நீங்கள் மைக்ரோகண்ட்ரோலர்களைப் பயன்படுத்தும் வகை.

ஸ்டுடியோவையும் USBASP புரோகிராமரையும் இணைக்கும் ஒரே வழி இதுதான். ஒளிரும் போது கவனமாக இருங்கள் - மைக்ரோகண்ட்ரோலர் கையொப்பத்தை நீங்கள் சேதப்படுத்தலாம், மேலும் அதை 12 V (உயர் மின்னழுத்தம்) புரோகிராமர் மூலம் மட்டுமே மீட்டெடுக்க முடியும்.

பயிற்சிக்கு நான் என்ன இலக்கியங்களைப் பயன்படுத்த வேண்டும்?

முதலில், ஒவ்வொரு மைக்ரோகண்ட்ரோலருக்கும் அதிகாரப்பூர்வ வலைத்தளத்திலிருந்து கையேடுகளைப் பதிவிறக்கவும். குறிப்பிட்ட பாடப்புத்தகத்தை பரிந்துரைப்பது கடினம், ஆனால் “DI Halt - AVR. பயிற்சி வகுப்பு" நீங்கள் அதைப் பயன்படுத்தலாம் - இந்த பொருளை உருவாக்கியவர் ஒரு பயிற்சியாளர், பல்வேறு இணைய வளங்களைப் பற்றிய பல கட்டுரைகளை எழுதியவர் மற்றும் சிறப்பு வட்டங்களில் மரியாதைக்குரிய நபர்.

எம்.கே படிப்பை அசெம்ப்லரில் தொடங்க வேண்டும் என்று ஒன்றுக்கு மேற்பட்ட முறை கூறியுள்ளேன். இணையதளத்தில் ஒரு முழு பாடமும் இதற்கு அர்ப்பணிக்கப்பட்டது (இது மிகவும் சீரானதாக இல்லை என்றாலும், படிப்படியாக நான் அதை போதுமான தோற்றத்திற்கு இணைக்கிறேன்). ஆமாம், இது கடினம், இதன் விளைவாக முதல் நாளில் இருக்காது, ஆனால் உங்கள் கட்டுப்படுத்தியில் என்ன நடக்கிறது என்பதைப் புரிந்துகொள்ள நீங்கள் கற்றுக் கொள்வீர்கள். இது எவ்வாறு இயங்குகிறது என்பதை நீங்கள் அறிவீர்கள், மேலும் ஒரு குரங்கு போன்ற பிறரின் ஆதாரங்களை நகலெடுக்க வேண்டாம் மற்றும் அது ஏன் திடீரென்று வேலை செய்வதை நிறுத்தியது என்பதைப் புரிந்துகொள்ள முயற்சிக்கவும். கூடுதலாக, சி ரெட்நெக் குறியீட்டை உருவாக்குவது மிகவும் எளிதானது, இது மிகவும் பொருத்தமற்ற தருணத்தில் பிட்ச்ஃபோர்க்குடன் வெளிவரும்.

துரதிர்ஷ்டவசமாக, எல்லோரும் உடனடியாக முடிவுகளை விரும்புகிறார்கள். அதனால் நான் வேறு வழியில் செல்ல முடிவு செய்தேன் - C இல் ஒரு டுடோரியலை உருவாக்கவும், ஆனால் அவரது உள்ளாடைகளைக் காட்டவும். ஒரு நல்ல உட்பொதிப்பு புரோகிராமர் எப்போதும் தனது வன்பொருளை போல்ட் மூலம் இறுக்கமாகப் பிடித்து வைத்திருப்பார், அனுமதியின்றி ஒரு அடி கூட எடுக்க அனுமதிக்க மாட்டார். எனவே முதலில் சி குறியீடு இருக்கும், பின்னர் கம்பைலர் என்ன தயாரித்தது மற்றும் அது எப்படி வேலை செய்கிறது :)

மறுபுறம், C இன் வலுவான புள்ளி குறியீடு பெயர்வுத்திறன் ஆகும். நிச்சயமாக, நீங்கள் எல்லாவற்றையும் சரியாக எழுதினால். வேலை அல்காரிதம்கள் மற்றும் அவற்றின் வன்பொருள் செயலாக்கங்களை திட்டத்தின் வெவ்வேறு பகுதிகளாகப் பிரித்தல். பின்னர், அல்காரிதத்தை மற்றொரு மைக்ரோகண்ட்ரோலருக்கு மாற்ற, வன்பொருளுக்கான அனைத்து அழைப்புகளும் எழுதப்பட்ட இடைமுக அடுக்கை மட்டும் மீண்டும் எழுத போதுமானதாக இருக்கும், மேலும் அனைத்து வேலைக் குறியீட்டையும் அப்படியே விட்டு விடுங்கள். மற்றும், நிச்சயமாக, வாசிப்புத்திறன். சி மூலக் குறியீடு முதல் பார்வையில் புரிந்துகொள்வது எளிது (எனினும்... எடுத்துக்காட்டாக, எதைச் சுட்டிக்காட்டுவது என்பது எனக்கு கவலையில்லை - அது C அல்லது ASM :)), ஆனால், மீண்டும், எல்லாம் சரியாக எழுதப்பட்டிருந்தால். இந்த புள்ளிகளிலும் கவனம் செலுத்துவேன்.

எனது பிழைத்திருத்த பலகை சோதனை வன்பொருளாக செயல்படும், அதில் அனைத்து எடுத்துக்காட்டுகளிலும் சிங்கத்தின் பங்கு நிறுவப்படும்.

AVRக்கான முதல் C நிரல்

ஒரு கம்பைலரைத் தேர்ந்தெடுத்து சூழலை அமைத்தல்
AVRக்கு பல்வேறு C கம்பைலர்கள் உள்ளன:
முதலில் இதெல்லாம் ஐஏஆர் ஏவிஆர் சி- ஏவிஆருக்கான சிறந்த கம்பைலராக கிட்டத்தட்ட நிச்சயமாக அங்கீகரிக்கப்பட்டுள்ளது, ஏனெனில் அட்மெல் மற்றும் IAR இன் நிபுணர்களுக்கு இடையே நெருக்கமான ஒத்துழைப்புடன் கட்டுப்படுத்தி உருவாக்கப்பட்டது. ஆனால் எல்லாவற்றிற்கும் நீங்கள் பணம் செலுத்த வேண்டும். மேலும் இந்த கம்பைலர் ஒரு விலையுயர்ந்த வணிக மென்பொருளாக மட்டுமல்லாமல், ஒரு டன் அமைப்புகளையும் கொண்டுள்ளது, அதை எளிமையாக தொகுக்க நிறைய முயற்சி எடுக்க வேண்டும். நான் உண்மையில் அவருடன் நட்பை வளர்க்கவில்லை; இணைக்கும் கட்டத்தில் விசித்திரமான பிழைகள் காரணமாக திட்டம் அழுகியது (அது ஒரு வளைந்த விரிசல் என்று பின்னர் நான் கண்டுபிடித்தேன்).

இரண்டாவது வருகிறது WinAVR GCC- ஒரு சக்திவாய்ந்த மேம்படுத்தும் கம்பைலர். முழுமையாக திறந்த மூல, குறுக்கு-தளம், பொதுவாக, வாழ்க்கையின் அனைத்து மகிழ்ச்சிகளும். இது AVR ஸ்டுடியோவுடன் முழுமையாக ஒருங்கிணைக்கிறது, இது உங்களை அங்கேயே பிழைத்திருத்த அனுமதிக்கிறது, இது மிகவும் வசதியானது. பொதுவாக, நான் அதைத் தேர்ந்தெடுத்தேன்.

கூட உள்ளது கோட்விஷன் ஏவிஆர் சிமிகவும் பிரபலமான தொகுப்பாளர். அதன் எளிமை காரணமாக இது பிரபலமடைந்தது. ஒரு சில நிமிடங்களில் நீங்கள் வேலை செய்யும் நிரலைப் பெறலாம் - தொடக்கக் குறியீடு வழிகாட்டி எல்லா வகையான விஷயங்களையும் தொடங்குவதற்கான தரநிலைகளை முத்திரை குத்துவதன் மூலம் இதை பெரிதும் எளிதாக்குகிறது. உண்மையைச் சொல்வதென்றால், எனக்கு அதில் ஒருவித சந்தேகம் உள்ளது - இந்த கம்பைலரால் எழுதப்பட்ட ஒரு நிரலை நான் அகற்ற வேண்டியிருந்தது, அது ஒருவித குழப்பமாக மாறியது, குறியீடாக இல்லை. ஒரு பயங்கரமான அளவு தேவையற்ற இயக்கங்கள் மற்றும் செயல்பாடுகள், இதன் விளைவாக கணிசமான அளவு குறியீடு மற்றும் மெதுவான செயல்திறன் ஏற்பட்டது. இருப்பினும், அசல் ஃபார்ம்வேரை எழுதிய நபரின் டிஎன்ஏவில் பிழை இருக்கலாம். மேலும் அவருக்கு பணம் வேண்டும். IAR அளவுக்கு இல்லை, ஆனால் கவனிக்கத்தக்கது. டெமோ பயன்முறையில், 2kb க்கு மேல் குறியீட்டை எழுத இது உங்களை அனுமதிக்கிறது.
நிச்சயமாக ஒரு விரிசல் உள்ளது, ஆனால் நீங்கள் திருடப் போகிறீர்கள் என்றால், அது IAR அர்த்தத்தில் ஒரு மில்லியன் :)

கூட உள்ளது பட கைவினை ஏவிஆர் சிமற்றும் மைக்ரோசிமைக்ரோ எலக்ட்ரானிக்ஸ் இருந்து. நான் இரண்டையும் பயன்படுத்த வேண்டியதில்லை, ஆனால் எஸ்.டபிள்யூ.ஜி.மிகவும் பாராட்டுகிறேன் மைக்ரோ பாஸ்கல், அவர்கள் சொல்கிறார்கள், ஒரு பயங்கரமான வசதியான நிரலாக்க சூழல் மற்றும் நூலகங்கள். மைக்ரோசி மோசமாக இருக்காது என்று நான் நினைக்கிறேன், ஆனால் அதுவும் செலுத்தப்படுகிறது.

நான் சொன்னது போல், நான் தேர்ந்தெடுத்தேன் WinAVRமூன்று காரணங்களுக்காக: இது இலவசம், இது AVR ஸ்டுடியோவில் ஒருங்கிணைக்கிறது மற்றும் எல்லா சந்தர்ப்பங்களுக்கும் ஒரு டன் ஆயத்த குறியீடு எழுதப்பட்டுள்ளது.

எனவே WinAVR நிறுவலை AVR ஸ்டுடியோவுடன் பதிவிறக்கவும். அடுத்து, ஸ்டுடியோ முதலில் நிறுவப்பட்டது, பின்னர் WinAVR மேலே உருட்டப்பட்டு ஸ்டுடியோவில் சொருகி வடிவத்தில் இணைக்கப்பட்டுள்ளது. C:\WinAVR போன்ற ஒரு குறுகிய பாதையில் WinAVR ஐ நிறுவுமாறு நான் கடுமையாக பரிந்துரைக்கிறேன், இந்த வழியில் நீங்கள் பாதைகளில் நிறைய சிக்கல்களைத் தவிர்க்கலாம்.

ஒரு திட்டத்தை உருவாக்குதல்
எனவே, ஸ்டுடியோ நிறுவப்பட்டது, சி திருகப்பட்டது, ஏதாவது நிரல் செய்ய முயற்சிக்க வேண்டிய நேரம் இது. எளிமையான, எளிமையானவற்றுடன் தொடங்குவோம். ஸ்டுடியோவைத் தொடங்கவும், அங்கு ஒரு புதிய திட்டத்தை AVR GCC கம்பைலராகத் தேர்ந்தெடுத்து, திட்டத்தின் பெயரை உள்ளிடவும்.

காலியான *.c கோப்புடன் பணிப் புலம் திறக்கிறது.

ஸ்டுடியோ புக்மார்க்குகளில் பாதைகளின் காட்சியை உள்ளமைப்பது இப்போது வலிக்காது. இதைச் செய்ய, இதற்குச் செல்லவும்:
மெனு கருவிகள் - விருப்பங்கள் - பொது - கோப்பு தாவல்கள் மற்றும் கீழ்தோன்றும் பட்டியலில் இருந்து "கோப்பு பெயர் மட்டும்" என்பதைத் தேர்ந்தெடுக்கவும். இல்லையெனில், அது வேலை செய்ய இயலாது - தாவலில் கோப்பின் முழு பாதை இருக்கும் மற்றும் திரையில் இரண்டு அல்லது மூன்று தாவல்களுக்கு மேல் இருக்காது.

திட்ட அமைப்பு
பொதுவாக, அனைத்து சார்புகளும் விவரிக்கப்பட்டுள்ள மேக் கோப்பை உருவாக்குவது உன்னதமானதாகக் கருதப்படுகிறது. அது ஒருவேளை சரிதான். ஆனால் என்னைப் பொறுத்தவரை, முழுமையாக ஒருங்கிணைக்கப்பட்ட IDE களுடன் வளர்ந்தவர் uVisionஅல்லது ஏவிஆர் ஸ்டுடியோஇந்த அணுகுமுறை ஆழமாக அந்நியமானது. எனவே, நான் அதை என் வழியில் செய்வேன், எல்லாவற்றையும் ஸ்டுடியோ மூலம் செய்வேன்.

கியருடன் பொத்தானைக் குத்தவும்.


இவை உங்கள் திட்டத்திற்கான அமைப்புகள் அல்லது ஒரு மேக் கோப்பை தானாக உருவாக்குவதற்கான அமைப்புகளாகும். முதல் பக்கத்தில் உங்கள் MK செயல்படும் அதிர்வெண்ணை உள்ளிட வேண்டும். இது உருகி பிட்களைப் பொறுத்தது, எனவே எங்கள் அதிர்வெண் 8000000Hz என்று கருதுகிறோம்.
தேர்வுமுறை வரியிலும் கவனம் செலுத்துங்கள். இப்போது -Os உள்ளது - இது அளவு தேர்வுமுறை. இப்போதைக்கு அப்படியே விட்டு விடுங்கள், பிறகு இந்த அளவுருவுடன் விளையாட முயற்சி செய்யலாம். -O0 தேர்வுமுறை இல்லை.

அடுத்த கட்டம் பாதைகளை அமைப்பது. முதலில், உங்கள் திட்டக் கோப்பகத்தைச் சேர்க்கவும் - அங்கு மூன்றாம் தரப்பு நூலகங்களைச் சேர்ப்பீர்கள். பட்டியலில் “.\” பாதை தோன்றும்.

மேக் கோப்பு உருவாக்கப்பட்டுள்ளது, அதை உங்கள் திட்டப்பணியில் உள்ள இயல்புநிலை கோப்புறையில் பார்க்கலாம், பார்த்துவிட்டு என்ன இருக்கிறது என்று பாருங்கள்.


இப்பொழுது இத்துடன் நிறைவடைகிறது. எல்லா இடங்களிலும் சரி என்பதைக் கிளிக் செய்து மூலத்திற்குச் செல்லவும்.

சிக்கலை உருவாக்குதல்
ஒரு வெற்றுத் தாள் சில தந்திரமான யோசனைகளைச் செயல்படுத்தத் தூண்டுகிறது, ஏனெனில் ஒரு டையோடு சாதாரணமான சிமிட்டல் வேலை செய்யாது. உடனே காளையை கொம்புகளால் பிடித்து கணினியுடன் இணைப்பை செயல்படுத்துவோம் - இது நான் செய்யும் முதல் வேலை.

இது இப்படி வேலை செய்யும்:
COM போர்ட்டில் ஒன்று (குறியீடு 0x31) வரும்போது, ​​நாங்கள் டையோடை இயக்குவோம், பூஜ்ஜியம் வரும்போது (குறியீடு 0x30) அது அணைக்கப்படும். மேலும், அனைத்தும் குறுக்கீடுகளில் செய்யப்படும், மேலும் பின்னணி பணியானது மற்றொரு டையோடு ஒளிரும். எளிய மற்றும் அர்த்தமுள்ள.

சுற்று அசெம்பிளிங்
USB-USART மாற்றி தொகுதியை மைக்ரோகண்ட்ரோலரின் USART பின்களுடன் இணைக்க வேண்டும். இதைச் செய்ய, இரண்டு கம்பிகளிலிருந்து ஒரு ஜம்பரை எடுத்து, குறுக்குவழியாக ஊசிகளில் வைக்கவும். அதாவது, கட்டுப்படுத்தியின் Rx ஐ மாற்றியின் Tx உடன் இணைக்கிறோம், மற்றும் மாற்றியின் Tx ஐ கட்டுப்படுத்தியின் Rx உடன் இணைக்கிறோம்.

இறுதியில், இது வரைபடம்:


மீதமுள்ள பின்கள், பவர் அல்லது ரீசெட் ஆகியவற்றை இணைப்பதை நான் கருத்தில் கொள்ளவில்லை, இது நிலையானது.

எழுத்து குறியீடு

சி மொழியின் விளக்கத்தை நான் குறிப்பாக ஆராய மாட்டேன் என்று இப்போதே முன்பதிவு செய்கிறேன். கிளாசிக் "சி புரோகிராமிங் லாங்குவேஜ்" முதல் கே&ஆர் முதல் பல்வேறு கையேடுகள் வரை இதற்கு ஒரு பெரிய அளவிலான பொருள் உள்ளது.

எனது ஸ்டாஷில் இதுபோன்ற ஒரு முறையைக் கண்டேன்; இந்த மொழியைப் படிக்க ஒருமுறை அதைப் பயன்படுத்தினேன். அங்குள்ள அனைத்தும் சுருக்கமாகவும் தெளிவாகவும் புள்ளியாகவும் உள்ளன. நான் அதை படிப்படியாக ஒன்றாக சேர்த்து எனது வலைத்தளத்திற்கு இழுத்து வருகிறேன்.

எல்லா அத்தியாயங்களும் இன்னும் மாற்றப்படவில்லை என்பது உண்மைதான், ஆனால் அது நீண்ட காலத்திற்கு இருக்காது என்று நினைக்கிறேன்.

நான் அதை சிறப்பாக விவரிக்க முடியும் என்பது சாத்தியமில்லை, எனவே பயிற்சி வகுப்பிலிருந்து, நுணுக்கங்களின் விரிவான விளக்கத்திற்கு பதிலாக, இந்த கையேட்டின் தனிப்பட்ட பக்கங்களுக்கு நேரடி இணைப்புகளை வழங்குவேன்.

நூலகங்களைச் சேர்த்தல்.
முதலில், தேவையான நூலகங்கள் மற்றும் தலைப்புகளை வரையறைகளுடன் சேர்க்கிறோம். எல்லாவற்றிற்கும் மேலாக, சி ஒரு உலகளாவிய மொழி மற்றும் நாங்கள் குறிப்பாக AVR உடன் வேலை செய்கிறோம் என்பதை அவருக்கு விளக்க வேண்டும், எனவே மூலக் குறியீட்டில் வரியை எழுதுங்கள்:

1 #சேர்க்கிறது

#சேர்க்கிறது

இந்த கோப்பு கோப்புறையில் அமைந்துள்ளது WinAVRமற்றும் கட்டுப்படுத்தியின் அனைத்து பதிவேடுகள் மற்றும் போர்ட்களின் விளக்கமும் இதில் உள்ளது. மேலும், அங்குள்ள அனைத்தும் தந்திரமானவை, ஒரு குறிப்பிட்ட கட்டுப்படுத்தியுடன் பிணைப்புடன், இது கம்பைலரால் கடத்தப்படுகிறது. செய்யஅளவுருவில் கோப்பு MCUஇந்த மாறியின் அடிப்படையில், இந்த குறிப்பிட்ட கட்டுப்படுத்திக்கான அனைத்து போர்ட்கள் மற்றும் பதிவேடுகளின் முகவரிகளின் விளக்கத்துடன் ஒரு தலைப்பு கோப்பு உங்கள் திட்டத்துடன் இணைக்கப்பட்டுள்ளது. ஆஹா! இது இல்லாமல், இது சாத்தியமாகும், ஆனால் நீங்கள் SREG அல்லது UDR போன்ற குறியீட்டு பதிவுப் பெயர்களைப் பயன்படுத்த முடியாது, மேலும் "0xC1" போன்ற ஒவ்வொன்றின் முகவரியையும் நீங்கள் நினைவில் வைத்திருக்க வேண்டும், இது தலைவலியாக இருக்கும்.

அணி தானே #சேர்க்கிறது<имя файла> எந்தவொரு உரைக் கோப்பின் உள்ளடக்கத்தையும் உங்கள் திட்டத்தில் சேர்க்க உங்களை அனுமதிக்கிறது, எடுத்துக்காட்டாக, செயல்பாடுகளின் விளக்கத்துடன் கூடிய கோப்பு அல்லது பிற குறியீட்டின் ஒரு பகுதி. கட்டளை இந்த கோப்பைக் கண்டுபிடிக்கும் வகையில், எங்கள் திட்டத்திற்கான பாதையை நாங்கள் குறிப்பிட்டுள்ளோம் (WinAVR கோப்பகம் முன்னிருப்பாக அங்கு பதிவு செய்யப்பட்டுள்ளது).

முக்கிய செயல்பாடு.
ஒரு சி நிரல் முழுவதுமாக செயல்பாடுகளைக் கொண்டுள்ளது. அவை எந்த வரிசையிலும் வெவ்வேறு வழிகளிலும் கூடு கட்டப்பட்டு ஒருவருக்கொருவர் அழைக்கப்படலாம். ஒவ்வொரு செயல்பாட்டிற்கும் மூன்று தேவையான அளவுருக்கள் உள்ளன:

  • திரும்பும் மதிப்பு எ.கா. பாவம்(x) x இன் சைனின் மதிப்பை வழங்குகிறது. கணிதத்தைப் போலவே, சுருக்கமாக.
  • கடத்தப்பட்ட அளவுருக்கள் அதே X ஆகும்.
  • செயல்பாட்டு உடல்.

அனுப்பப்பட்ட மற்றும் திருப்பியளிக்கப்பட்ட அனைத்து மதிப்புகளும் தரவைப் பொறுத்து ஏதேனும் ஒரு வகையாக இருக்க வேண்டும்.

எந்த சி நிரலும் ஒரு செயல்பாட்டைக் கொண்டிருக்க வேண்டும் முக்கியமுக்கிய நிரலுக்கான நுழைவு புள்ளியாக, இல்லையெனில் அது C அல்ல :). ஒரு மில்லியன் கோப்புகளிலிருந்து வேறொருவரின் மூலக் குறியீட்டில் முக்கிய இருப்பதன் மூலம், இது நிரலின் முக்கிய பகுதி என்பதை நீங்கள் புரிந்து கொள்ளலாம், அங்கு எல்லாம் தொடங்கும். எனவே கேட்போம்:

1 2 3 4 5 int main(செல்லம்) (திரும்ப 0 ;)

int main(செல்லம்) ( திரும்ப 0; )

அவ்வளவுதான், முதல் எளிய நிரல் எழுதப்பட்டது, அது எதையும் செய்யாது என்பது முக்கியமல்ல, நாங்கள் இப்போதுதான் தொடங்கினோம்.

நாம் என்ன செய்தோம் என்பதைக் கண்டுபிடிப்போம்.
முழு எண்ணாகமுக்கிய செயல்பாடு திரும்பும் தரவு வகை இது.

நிச்சயமாக, ஒரு மைக்ரோகண்ட்ரோலரில் முக்கியகொள்கையளவில் எதையும் திரும்பப் பெற முடியாது மற்றும் கோட்பாட்டில் இருக்க வேண்டும் வெற்றிட முதன்மை (வெற்றிடம்), ஆனால் ஜி.சி.சி முதலில் பிசிக்காக வடிவமைக்கப்பட்டது மற்றும் நிரல் முடிந்ததும் அதன் மதிப்பை இயக்க முறைமைக்கு திருப்பி அனுப்பலாம். எனவே ஜி.சி.சி வெற்றிட முதன்மை (வெற்றிடம்)எச்சரிக்கை மூலம் சத்தியம் செய்கிறார்.

இது ஒரு பிழை அல்ல, அது வேலை செய்யும், ஆனால் எனக்கு எச்சரிக்கைகள் பிடிக்கவில்லை.

வெற்றிடமானதுஇது நாம் செயல்பாட்டிற்கு அனுப்பும் தரவு வகை, இந்த விஷயத்தில் முக்கியஎனவே வெளியில் இருந்து எதையும் ஏற்றுக்கொள்ள முடியாது வெற்றிடமானது- ஒரு போலி. எதையும் அனுப்பவோ அல்லது திருப்பித் தரவோ தேவையில்லாதபோது ஸ்டப் பயன்படுத்தப்படுகிறது.

இங்கே அவர்கள் { } சுருள் பிரேஸ்கள் ஒரு நிரல் தொகுதி, இந்த விஷயத்தில் ஒரு செயல்பாட்டின் உடல் முக்கிய, குறியீடு அங்கு அமைந்திருக்கும்.

திரும்ப- இது முக்கிய செயல்பாடு முடிந்தவுடன் திரும்பும் மதிப்பாகும், ஏனெனில் நம்மிடம் ஒரு முழு எண்ணாக உள்ளது, அதாவது ஒரு எண், பின்னர் நாம் ஒரு எண்ணை வழங்க வேண்டும். இது இன்னும் புரியவில்லை என்றாலும், ஏனெனில் ... மைக்ரோகண்ட்ரோலரில், நாம் முக்கியமாக எங்கும் செல்ல முடியாது. நான் பூஜ்யமாக திரும்புகிறேன். ஏனென்றால் அது முக்கியமில்லை. ஆனால் கம்பைலர் பொதுவாக ஸ்மார்ட் மற்றும் இந்த வழக்கில் குறியீட்டை உருவாக்காது.
இருப்பினும், வக்கிரமாக இருந்தால், பின்னர் இருந்து முக்கியநீங்கள் MK க்கு செல்லலாம் - எடுத்துக்காட்டாக, பூட்லோடர் பிரிவில் விழுந்து அதை இயக்கவும், ஆனால் இதற்கு மாறுதல் முகவரிகளை சரிசெய்ய ஃபார்ம்வேருடன் குறைந்த-நிலை டிங்கரிங் தேவைப்படும். கீழே நீங்களே பார்த்து, அதை எப்படி செய்வது என்பதைப் புரிந்துகொள்வீர்கள். எதற்காக? இது மற்றொரு கேள்வி, 99.999% வழக்குகளில் இது தேவையில்லை :)

அதைச் செய்துவிட்டு நகர்ந்தோம். ஒரு மாறியைச் சேர்ப்போம், நமக்கு அது உண்மையில் தேவையில்லை, அது இல்லாமல் மாறிகளை அறிமுகப்படுத்துவதில் எந்தப் பயனும் இல்லை, ஆனால் நாங்கள் கற்றுக்கொள்கிறோம். ஒரு செயல்பாட்டின் உடலில் மாறிகள் சேர்க்கப்பட்டால், அவை உள்ளூர் மற்றும் இந்தச் செயல்பாட்டில் மட்டுமே இருக்கும். நீங்கள் செயல்பாட்டிலிருந்து வெளியேறும்போது, ​​இந்த மாறிகள் நீக்கப்படும், மேலும் முக்கியமான தேவைகளுக்கு ரேம் நினைவகம் ஒதுக்கப்படும். .

1 2 3 4 5 6 int main(செல்லம்) (கையொப்பமிடப்படாத எழுத்து i; திரும்ப 0 ;)

int main(செல்லம்) (கையொப்பமிடப்படாத எழுத்து i; திரும்ப 0;)

கையொப்பமிடாதகையொப்பமிடாதது என்று பொருள். உண்மை என்னவென்றால், பைனரி பிரதிநிதித்துவத்தில், குறிக்கு மிகவும் குறிப்பிடத்தக்க பிட் ஒதுக்கப்பட்டுள்ளது, அதாவது +127/-128 என்ற எண் ஒரு பைட்டுடன் (கரி) பொருந்துகிறது, ஆனால் அடையாளம் நிராகரிக்கப்பட்டால், அது 0 முதல் பொருந்தும். 255. பொதுவாக அடையாளம் தேவையில்லை. அதனால் கையொப்பமிடாத.
நான்ஒரு மாறி பெயர். இனி இல்லை.

இப்போது நாம் துறைமுகங்களை துவக்க வேண்டும் மற்றும் UART. நிச்சயமாக, நீங்கள் நூலகத்தை எடுத்து இணைக்கலாம் மற்றும் சில வகையான UartInit (9600) ஐ அழைக்கலாம்; ஆனால் உண்மையில் என்ன நடந்தது என்று உங்களுக்குத் தெரியாது.

நாங்கள் இதைச் செய்கிறோம்:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 முழு எண்ணாக முக்கிய(வெற்றிடம்) (கையொப்பமிடப்படாத எழுத்து i; #XTAL 8000000L வரையறுக்கவும் #பாட்ரேட் 9600L வரையறுக்கவும் #பாடிவைடரை வரையறுக்கவும் (XTAL/(16*baudrate)-1)#வரையறுக்கவும் HI(x) ((x)>>8) #LO(x) ((x)& 0xFF) UBRRL = LO(bauddivider) ; UBRRH = HI(bauddivider) ; UCSRA = 0 ; UCSRB = 1<< RXEN| 1 << TXEN| 1 << RXCIE| 0 << TXCIE; UCSRC = 1 << URSEL| 1 << UCSZ0| 1 << UCSZ1; }

int main(void) ( கையொப்பமிடாத char i; #Ddefine XTAL 8000000L #define baudrate 9600L #define bauddivider (XTAL/(16*baudrate)-1) #define HI(x) ((x)>>8) #LO(வரையறுக்கவும் x) ((x)& 0xFF) UBRRL = LO(bauddivider); UBRRH = HI(bauddivider); UCSRA = 0; UCSRB = 1<

பயங்கரமா? உண்மையில், உண்மையான குறியீட்டின் ஐந்து கடைசி வரிகள் மட்டுமே உள்ளன. எல்லாம், அது #வரையறுஇது ஒரு முன்செயலி மேக்ரோ மொழி. அசெம்பிளியில் உள்ளதைப் போன்றே இருக்கும், ஆனால் தொடரியல் சற்று வித்தியாசமானது.

தேவையான குணகங்களைக் கணக்கிடுவதற்கான உங்கள் வழக்கமான செயல்பாடுகளை அவை எளிதாக்கும். அதற்கு பதிலாக முதல் வரியில் சொல்கிறோம் XTALநீங்கள் 8000000 ஐ பாதுகாப்பாக மாற்றலாம் மற்றும் எல்- செயலியின் கடிகார அதிர்வெண் நீளமானது என்று கூறும் வகையின் அறிகுறி. அதே பாட்ரேட்- UART வழியாக தரவு பரிமாற்றத்தின் அதிர்வெண்.

பாத்தி பிரிப்பான்ஏற்கனவே மிகவும் சிக்கலானது, அதற்கு பதிலாக இரண்டு முந்தையவற்றிலிருந்து சூத்திரத்தைப் பயன்படுத்தி கணக்கிடப்பட்ட வெளிப்பாடு மாற்றப்படும்.
சரி மற்றும் எல்.ஓ.மற்றும் வணக்கம்குறைந்த மற்றும் அதிக பைட்டுகள் இந்த முடிவிலிருந்து எடுக்கப்படும், ஏனெனில் இது வெளிப்படையாக ஒரு பைட்டில் பொருந்தாது. IN வணக்கம் X (மேக்ரோ உள்ளீட்டு அளவுரு) எட்டு முறை வலதுபுறமாக மாற்றப்பட்டது, இதன் விளைவாக மிகவும் குறிப்பிடத்தக்க பைட் மட்டுமே மீதமுள்ளது. மற்றும் உள்ளே எல்.ஓ. 00FF என்ற எண்ணைக் கொண்டு பிட்வைஸ் செய்கிறோம், இதன் விளைவாக குறைந்த பைட் மட்டுமே இருக்கும்.

எனவே செய்தவை அனைத்தும் இப்படித்தான் #வரையறுநீங்கள் அதை பாதுகாப்பாக தூக்கி எறிந்துவிட்டு, கால்குலேட்டரில் தேவையான எண்களைக் கணக்கிட்டு, உடனடியாக UBBRL = .... என்ற வரிகளில் அவற்றை உள்ளிடலாம். மற்றும் UBBRH =…..

முடியும். ஆனாலும்! இதை செய்ய முற்றிலும் சாத்தியமற்றது!

இது இந்த வழியில் அல்லது அந்த வழியில் வேலை செய்யும், ஆனால் நீங்கள் அழைக்கப்படுவீர்கள் மந்திர எண்கள்- எங்கிருந்தும் அறியப்படாத காரணங்களுக்காக எடுக்கப்பட்ட மதிப்புகள், ஓரிரு ஆண்டுகளில் நீங்கள் அத்தகைய திட்டத்தைத் திறந்தால், இந்த மதிப்புகள் என்ன என்பதைப் புரிந்துகொள்வது மிகவும் கடினம். இப்போது கூட, நீங்கள் வேகத்தை மாற்ற விரும்பினால் அல்லது குவார்ட்ஸ் அதிர்வெண்ணை மாற்ற விரும்பினால், எல்லாவற்றையும் மீண்டும் கணக்கிட வேண்டும், ஆனால் நீங்கள் குறியீட்டில் இரண்டு எண்களை மாற்றியுள்ளீர்கள், அவ்வளவுதான். பொதுவாக, நீங்கள் ஒரு குறியீட்டாளராக முத்திரை குத்தப்பட விரும்பவில்லை என்றால், உங்கள் குறியீட்டை எளிதாகப் படிக்கவும், புரிந்துகொள்ளக்கூடியதாகவும், மாற்றியமைக்கவும் எளிதாகவும் இருக்கும்.

பின்னர் எல்லாம் எளிது:
இந்த "UBRRL மற்றும் Co" அனைத்தும் UART டிரான்ஸ்மிட்டரின் உள்ளமைவு பதிவேடுகள் ஆகும், இதன் உதவியுடன் நாம் உலகத்துடன் தொடர்புகொள்வோம். இப்போது நாம் அவர்களுக்கு தேவையான மதிப்புகளை ஒதுக்கியுள்ளோம், அவற்றை விரும்பிய வேகம் மற்றும் பயன்முறையில் அமைக்கிறோம்.

பதிவு வகை 1<பின்வருவனவற்றைக் குறிக்கிறது: 1 ஐ எடுத்து இடத்தில் வைக்கவும் RXENபைட்டில். RXENஇது பதிவேட்டின் 4வது பிட் ஆகும் யு.சி.எஸ்.ஆர்.பி, அதனால் 1<பைனரி எண்ணை 00010000 உருவாக்குகிறது, TXEN- இது 3வது பிட், மற்றும் 1< 00001000 கொடுக்கும். ஒற்றை "|" அது கொஞ்சம் கொஞ்சமாக இருக்கிறது அல்லது, எனவே 00010000 | 00001000 = 00011000. அதே வழியில், மீதமுள்ள தேவையான கட்டமைப்பு பிட்கள் அமைக்கப்பட்டு பொது குவியலில் சேர்க்கப்படும். இதன் விளைவாக, சேகரிக்கப்பட்ட எண் UCSRB இல் பதிவு செய்யப்படுகிறது. USART பிரிவில் உள்ள MK பற்றிய தரவுத்தாளில் கூடுதல் விவரங்கள் விவரிக்கப்பட்டுள்ளன. எனவே தொழில்நுட்ப விவரங்களால் திசைதிருப்ப வேண்டாம்.

முடிந்தது, என்ன நடந்தது என்று பார்க்க நேரம். தொகுப்பைக் கிளிக் செய்து எமுலேஷனைத் தொடங்கவும் (Ctrl+F7).

பிழைத்திருத்தம்
அனைத்து வகையான முன்னேற்றக் கம்பிகளும் ஓடின, ஸ்டுடியோ மாறியது மற்றும் முக்கிய விழாவின் நுழைவாயிலுக்கு அருகில் மஞ்சள் அம்பு தோன்றியது. இங்குதான் தற்போது செயலி இயங்குகிறது மற்றும் உருவகப்படுத்துதல் இடைநிறுத்தப்பட்டுள்ளது.

உண்மை என்னவென்றால், ஆரம்பத்தில், அது UBRRL = LO(bauddivider) என்ற வரியில் இருந்தது; எல்லாவற்றிற்கும் மேலாக, நாம் வரையறுப்பது குறியீடு அல்ல, ஆனால் பூர்வாங்க கணக்கீடுகள், அதனால்தான் சிமுலேட்டர் கொஞ்சம் மந்தமானது. ஆனால் இப்போது மரத்தில் ஏறினால் முதல் அறிவுறுத்தல் முடிந்துவிட்டது என்பதை உணர்ந்தான் I/O பார்வை, USART பிரிவிற்கு சென்று அங்குள்ள UBBRL பைட்டைப் பார்க்கவும், மதிப்பு ஏற்கனவே இருப்பதைக் காண்பீர்கள்! 0x33.

இன்னும் ஒரு படி மேலே எடு. மற்ற பதிவின் உள்ளடக்கங்கள் எவ்வாறு மாறுகின்றன என்பதைப் பார்க்கவும். எனவே அவை அனைத்தையும் கடந்து செல்லுங்கள், சுட்டிக்காட்டப்பட்ட அனைத்து பிட்களும் நான் சொன்னது போல் அமைக்கப்பட்டுள்ளன, மேலும் அவை முழு பைட்டுக்கும் ஒரே நேரத்தில் அமைக்கப்பட்டுள்ளன என்பதில் கவனம் செலுத்துங்கள். இது திரும்பி வருவதைத் தவிர வேறு எதுவும் செல்லாது - நிரல் முடிந்தது.

திறப்பு
இப்போது உருவகப்படுத்துதலை பூஜ்ஜியத்திற்கு மீட்டமைக்கவும். அங்கு கிளிக் செய்யவும் மீட்டமை (Shift+F5). பிரிக்கப்பட்ட பட்டியலைத் திறக்கவும், இப்போது கட்டுப்படுத்தியில் உண்மையில் என்ன நடக்கிறது என்பதை நீங்கள் காண்பீர்கள். காண்க -> பிரிப்பான். YYAAAAAA அல்ல!!! அசெம்பிளர்!!! திகில்!!! மற்றும் அது அவசியம். பின்னர், ஏதாவது தவறு நடந்தால், நீங்கள் குறியீட்டில் முட்டாள்தனமாக இருக்காதீர்கள் மற்றும் மன்றங்களில் நொண்டிக் கேள்விகளைக் கேட்காதீர்கள், ஆனால் உடனடியாக தைரியத்தில் இறங்கி, நீங்கள் எங்கு சிக்கிக்கொண்டீர்கள் என்று பாருங்கள். அங்கு பயமுறுத்தும் ஒன்றும் இல்லை.

முதலில் தொடரின் டாப்ஸ் இருக்கும்:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +00000000: 940C002A JMP 0x0000002A ஜம்ப் +00000002: 940C0034 JMP 0x00000034 ஜம்ப் +00000004: 940C0034 JMP 0x0000000: 940C0034 JMP 0x000000 0x00000034 ஜம்ப் +00000008: 940C0034 JMP 0x00000034 ஜம்ப் +0000000A: 940C0034 JMP 0x00000034 ஜம்ப் +0000000C: 30000000C: 940 Jmp000 0000000E: 940C0034 JMP 0x00000034 ஜம்ப் +00000010: 940C0034 JMP 0x00000034 ஜம்ப் +00000012: 940C0034 JMP 0x0000000 0x00000034 ஜம்ப் +00000016: 940C0034 JMP 0x00000034 ஜம்ப் +00000018: 940C0034 JMP 0x00000034 ஜம்ப் +0000001A: 30000001A: 3000000 : 940C0034 JMP 0x00000034 ஜம்ப் +0000001E: 940C0034 JMP 0x00000034 ஜம்ப் +00000020: 940C0034 JMP 0x00000034 Jump0000030 JMP00000030 JMP 34 ஜம்ப் +00000024: 940C0034 ஜம்ப் 0x00000034 ஜம்ப் +00000026: 940C0034 ஜம்ப்

00000000: 940C002A JMP 0x0000002A ஜம்ப் +00000002: 940C0034 JMP 0x00000034 ஜம்ப் +00000004: 940C0034 JMP 0x0000000: 940C0034 JMP 0x000000 0x00000034 ஜம்ப் +00000008: 940C0034 JMP 0x00000034 ஜம்ப் +0000000A: 940C0034 JMP 0x00000034 ஜம்ப் +0000000C: 3000000C: 30000000 x 940 Jmp00 : 940C0034 JMP 0x00000034 ஜம்ப் +00000010: 940C0034 JMP 0x00000034 ஜம்ப் +00000012: 940C0034 JMP 0x00000034 Jump00000030 JMP 34 ஜம்ப் +00000016: 940C0034 ஜம்ப் : 940C0034 JMP 0x00000034 ஜம்ப் +0000001E: 940C0034 JMP 0x00000034 ஜம்ப் +00000020: 940C0034 JMP 0x00000034 ஜம்ப் 4 ஜம்ப் +00000024: 940C0034 ஜம்ப்

இது குறுக்கீடு திசையன் அட்டவணை. நாங்கள் பின்னர் அதற்குத் திரும்புவோம், ஆனால் இப்போதைக்கு அது இருப்பதைப் பார்த்து நினைவில் கொள்ளுங்கள். முதல் நெடுவரிசை ஃபிளாஷ் கலத்தின் முகவரி, அதில் கட்டளை உள்ளது, இரண்டாவது கட்டளை குறியீடு, மூன்றாவது கட்டளை நினைவூட்டல், அதே சட்டசபை அறிவுறுத்தல், மூன்றாவது கட்டளையின் செயல்பாடுகள். சரி, தானியங்கி கருத்து.
எனவே, நீங்கள் பார்த்தால், தொடர்ச்சியான மாற்றங்கள் உள்ளன. மற்றும் JMP கட்டளை குறியீடு நான்கு பைட்டுகள் ஆகும், அதில் பின்னோக்கி எழுதப்பட்ட ஜம்ப் முகவரி உள்ளது - குறைந்த முகவரியில் குறைந்த பைட் மற்றும் ஜம்ப் கட்டளை குறியீடு 940C

0000002B: BE1F அவுட் 0x3F,R1 I/O இருப்பிடத்திற்கு வெளியே

இந்த பூஜ்ஜியத்தை 0x3F முகவரியில் பதிவு செய்கிறீர்கள். I/O காட்சி நெடுவரிசையைப் பார்த்தால், 0x3F என்பது SREG பதிவேட்டின் முகவரி - கட்டுப்படுத்தியின் கொடிப் பதிவேடு என்பதைக் காண்பீர்கள். அந்த. பூஜ்ஜிய நிபந்தனைகளில் நிரலை இயக்க SREG ஐ மீட்டமைக்கிறோம்.

1 2 3 4 +0000002C: E5CF LDI R28,0x5F உடனடியாக ஏற்றவும் +0000002D: E0D4 LDI R29,0x04 உடனடியாக ஏற்றவும்

0000002C: E5CF LDI R28,0x5F ஐ உடனடியாக ஏற்றவும் +0000002D: E0D4 LDI R29,0x04 உடனடியாக ஏற்றவும்

இது ஸ்டாக் பாயிண்டரை ஏற்றுகிறது. நீங்கள் நேரடியாக I/O பதிவேடுகளில் ஏற்ற முடியாது, ஒரு இடைநிலை பதிவேடு மூலம் மட்டுமே. எனவே, முதலில் இடைநிலைக்கு LDI, பின்னர் அங்கிருந்து I/O க்கு. மேலும் அடுக்கைப் பற்றி பின்னர் கூறுகிறேன். இப்போதைக்கு, இது ரேமின் முடிவில் தொங்கும் மற்றும் முகவரிகள் மற்றும் இடைநிலை மாறிகளை சேமிக்கும் ஒரு டைனமிக் மெமரி பகுதி என்பதை அறிந்து கொள்ளுங்கள். இப்போது எங்கள் ஸ்டாக் எங்கிருந்து தொடங்கும் என்பதைக் குறிப்பிட்டுள்ளோம்.

00000032: 940C0041 JMP 0x00000041 ஜம்ப்

நிரலின் இறுதிவரை செல்லவும், அங்கு குறுக்கீடுகள் மற்றும் தன்னைத்தானே இறுக்கமாக வளையச்செய்ய தடை உள்ளது:

1 2 +00000041: 94F8 CLI Global Interrupt Disable +00000042: CFFF RJMP PC-0x0000 உறவினர் ஜம்ப்

00000041: 94F8 CLI Global Interrupt Disable +00000042: CFFF RJMP PC-0x0000 Relative jump

முக்கிய செயல்பாட்டிலிருந்து வெளியேறுவது போன்ற எதிர்பாராத சூழ்நிலைகளில் இது நிகழ்கிறது. கன்ட்ரோலரை வன்பொருள் ரீசெட் மூலமாகவோ அல்லது கண்காணிப்புக் குழுவிலிருந்து மீட்டமைப்பதன் மூலமாகவோ அத்தகைய லூப்பில் இருந்து வெளியே கொண்டு வர முடியும். சரி, அல்லது, நான் மேலே கூறியது போல், இதை ஹெக்ஸ் எடிட்டரில் சரிசெய்து, நம் இதயம் விரும்பும் இடத்திற்குச் செல்லுங்கள். இரண்டு வகையான மாற்றங்கள் உள்ளன என்பதை நினைவில் கொள்ளவும்: JMP மற்றும் RJMP; முதலாவது முகவரிக்கு நேரடி மாற்றம். இது நான்கு பைட்டுகளை ஆக்கிரமித்து, முழு நினைவக பகுதியிலும் நேரடியாக செல்ல முடியும். இரண்டாவது வகை மாற்றம் RJMP - உறவினர். அவரது கட்டளை இரண்டு பைட்டுகளை எடுக்கும், ஆனால் அவர் தற்போதைய நிலையில் இருந்து (முகவரி) 1024 படிகள் முன்னோக்கி அல்லது பின்னோக்கி நகர்கிறார். அதன் அளவுருக்கள் தற்போதைய புள்ளியிலிருந்து ஆஃப்செட்டைக் குறிக்கின்றன. ஏனெனில் இது அடிக்கடி பயன்படுத்தப்படுகிறது ஒரு பறிப்பில் பாதி இடத்தை எடுத்துக்கொள்கிறது, மேலும் நீண்ட மாற்றங்கள் அரிதாகவே தேவைப்படுகின்றன.

1 +00000034: 940C0000 JMP 0x00000000 ஜம்ப்

00000034: 940C0000 JMP 0x00000000 ஜம்ப்

இது குறியீட்டின் தொடக்கத்திற்கு ஒரு ஜம்ப் ஆகும். ஒரு வகையான மறுதொடக்கம். அனைத்து வெக்டார்களும் இங்கு தாண்டுகின்றனவா என்பதை நீங்கள் சரிபார்க்கலாம். இதன் முடிவு என்னவென்றால், நீங்கள் இப்போது குறுக்கீடுகளை இயக்கினால் (இயல்புநிலையாக அவை முடக்கப்பட்டுள்ளன) மற்றும் உங்கள் குறுக்கீடு ஏற்படுகிறது, ஆனால் ஹேண்ட்லர் இல்லை, பின்னர் ஒரு மென்பொருள் மீட்டமைவு இருக்கும் - நிரல் ஆரம்ப நிலைக்குத் தள்ளப்படும்.

முக்கிய செயல்பாடு. எல்லாம் ஒத்திருக்கிறது, நீங்கள் அதை விவரிக்க கூட தேவையில்லை. பதிவேட்டில் ஏற்கனவே கணக்கிடப்பட்ட எண்ணைப் பாருங்கள். கம்பைலர் ப்ராப்ராசசர் ராக்ஸ்!!! எனவே "மேஜிக்" எண்கள் இல்லை!

1 2 3 4 5 6 7 8 9 10 11 12 <

00000036: E383 LDI R24,0x33 உடனடியாக ஏற்றவும் +00000037: B989 OUT 0x09,R24 I/O இடம் 15: UBRRH = HI(bauddivider); +00000038: BC10 OUT 0x20,R1 I/O இடம் 16: UCSRA = 0; +00000039: B81B OUT 0x0B,R1 I/O இடம் 17: UCSRB = 1<

மற்றும் பிழை இங்கே:

1 2 3 +0000003E: E080 LDI R24.0x00 உடனடியாக ஏற்றவும் +0000003F: E090 LDI R25.0x00 உடனடியாக ஏற்றவும்

0000003E: E080 LDI R24.0x00 உடனடியாக ஏற்றவும் +0000003F: E090 LDI R25.0x00 உடனடியாக ஏற்றவும்

கேள்வி என்னவென்றால், கம்பைலர் ஏன் இத்தகைய டாப்களை சேர்க்கிறது? இது Return 0 தவிர வேறொன்றுமில்லை, நாங்கள் செயல்பாட்டை int main(void) என்று வரையறுத்தோம், அதனால் நாங்கள் வேறு நான்கு பைட்டுகளை வீணடித்தோம் :) மேலும் நீங்கள் void main(void) செய்தால் RET மட்டுமே இருக்கும், ஆனால் ஒரு எச்சரிக்கை தோன்றும். , எங்கள் முக்கிய செயல்பாடு எதையும் திரும்பப் பெறாது. பொதுவாக, நீங்கள் விரும்பியபடி செய்யுங்கள் :)

சிரமமா? வெளிப்படையாக இல்லை. பிரித்தெடுக்கும் பயன்முறையில் படி-படி-படி செயல்படுத்துதலைக் கிளிக் செய்து, செயலி தனிப்பட்ட வழிமுறைகளை எவ்வாறு செயல்படுத்துகிறது, பதிவேடுகளுக்கு என்ன நடக்கிறது என்பதைப் பார்க்கவும். கட்டளைகள் மற்றும் இறுதி லூப்பிங் மூலம் இயக்கம் எவ்வாறு நிகழ்கிறது?

இன்னும் ஓரிரு நாட்களில் தொடரும்...

நிறுத்தம்:
அலெக்ஸி78எனது தளம் மற்றும் மன்றத்தை வழிசெலுத்துவதை எளிதாக்கும் பயர்பாக்ஸிற்கான செருகுநிரலை உருவாக்கினேன்.
விவாதம் மற்றும் பதிவிறக்கம்,

Atmel Studio என்பது ARM Cortex-M தொடர் செயலி கட்டமைப்பின் அடிப்படையில் Atmel மைக்ரோகண்ட்ரோலர்களுக்காக உருவாக்கப்பட்ட பயன்பாடுகளை வடிவமைத்து பிழைத்திருத்துவதற்கான திறனை வழங்கும் ஒரு ஒருங்கிணைந்த மேம்பாட்டு தளமாகும். Atmel Studio என்பது தடையற்ற, பயன்படுத்த எளிதான சூழலாகும், இது C/C++ அல்லது அசெம்பிளி மொழியில் உருவாக்கப்பட்ட பயன்பாடுகளை பிழைத்திருத்தம் செய்து உருவாக்குவதற்கான திறனை வழங்குகிறது. இது முற்றிலும் இலவச அட்மெல் மென்பொருள் கட்டமைப்பு மூலக் குறியீட்டின் உள்ளமைக்கப்பட்ட மிகப்பெரிய நூலகத்தைக் கொண்டுள்ளது, இதில் ARM மற்றும் AVR கட்டமைப்புகளுக்கான 1,600 க்கும் மேற்பட்ட திட்டங்கள் உள்ளன. அத்தகைய நூலகத்தை வைத்திருப்பது எந்தவொரு புரோகிராமருக்கும் ஒரு சிறந்த போனஸ் ஆகும். இந்த IDE ஆனது பலவிதமான AVR-அடிப்படையிலான மைக்ரோகண்ட்ரோலர்களையும், கார்டெக்ஸ்-எம்3, கார்டெக்ஸ்-எம்4 கோர்களைப் பயன்படுத்தும் Atmel SAM3-அடிப்படையிலான ஃபிளாஷ் மைக்ரோகண்ட்ரோலர்களையும் நிரல்படுத்த பயன்படுகிறது.

அட்மெல் ஸ்டுடியோவில் எந்தவொரு புரோகிராமரின் வாழ்க்கையையும் மிகவும் எளிதாக்கும் கருவிகளும் உள்ளன. மேடையில் Atmel Spaces மற்றும் Atmel Gallery போன்ற தீர்வுகள் உள்ளன. Atmel Gallery என்பது மேம்பாட்டுக் கருவிகள் மற்றும் ஒருங்கிணைந்த மென்பொருளின் ஆன்லைன் ஸ்டோர் ஆகும். Atmel ஸ்பேஸ் என்பது அட்மெல் மைக்ரோகண்ட்ரோலர்களுக்கான வன்பொருள் மற்றும் மென்பொருள் திட்டக் கோப்புகளின் கூட்டு மேம்பாடு மற்றும் சேமிப்பிற்கான கிளவுட் அடிப்படையிலான இடமாகும்.

முக்கிய அம்சங்கள் மற்றும் செயல்பாடுகள்

  • முற்றிலும் இலவச ஒருங்கிணைந்த வளர்ச்சி சூழல்;
  • C/C++ மற்றும் Assembler மொழிகளை ஆதரிக்கிறது;
  • விரிவான ஆவணங்களுடன்;
  • பல்வேறு பயன்பாடுகளுக்கான மூல குறியீடு எடுத்துக்காட்டுகளுடன் கூடிய விரிவான நூலகத்தை உள்ளடக்கியது;
  • Atmel மைக்ரோகண்ட்ரோலர்களை நிரலாக்க வடிவமைக்கப்பட்டுள்ளது.

சிறப்பு தேவைகள்

  • செயலி கடிகார அதிர்வெண் 1.6 GHz மற்றும் அதற்கு மேல்;
  • 1 GB RAM இலிருந்து 32-பிட் அமைப்புகளுக்கு;
  • 2 GB RAM இலிருந்து 64-பிட் அமைப்புகளுக்கு;
  • மெய்நிகர் கணினியில் இயங்கும் போது, ​​கூடுதலாக 512 MB ரேம் பரிந்துரைக்கப்படுகிறது;
  • 6 ஜிபி இலவச ஹார்ட் டிஸ்க் இடம்.

இந்தப் பதிப்பில் புதியது என்ன?

7.0.790 (25.02.2016)

  • நீட்டிக்கப்பட்ட பிழைத்திருத்தத்திற்கான (EDBG) ஆதரவு சேர்க்கப்பட்டது;
  • இடைமுக அமைப்பு சுயவிவரங்களுக்கான ஆதரவு சேர்க்கப்பட்டது. அமைப்புகள் பேனலில் உள்ள விசைகளைப் பயன்படுத்தி சுயவிவரங்களுக்கு இடையில் மாறலாம்;
  • முன்பு இறக்குமதி செய்யப்பட்ட திட்டங்களில் நூலகங்களை இறக்குமதி செய்யும் திறனைச் சேர்த்தது. Arduino Zero மற்றும் Zero Pro ஆகியவற்றிற்கான ஆதரவு சேர்க்கப்பட்டது;
  • இணை உருவாக்கம் இப்போது முன்னிருப்பாக இயக்கப்பட்டது;
  • Xplained Miniக்கான மேம்படுத்தப்பட்ட firmware;
  • சொல்யூஷன் எக்ஸ்ப்ளோரரில் "அனைத்து கோப்புகளையும் காட்டு" செயல்பாடு சரி செய்யப்பட்டது.