суббота, 2 февраля 2013 г.

оператор switch в avr

Начнем этот урок с разбора оператора, который я забыл упомянуть в предыдущих статьях.Оператор SWITCH.Синтаксис:switch (ключ){ case значение_1: // операции, выполняемые если ключ равен значению_1 break; // выход из оператора swith, чтобы не выполнять последующие операции case значение_2: // операции, выполняемые если ключ равен значению_2 break; // выход из оператора swith, чтобы не выполнять последующие операции case default: // не обязательный параметр, выполняется если ни одно значение не совпало с ключем // операции, выполняемые если ключ не равен ни одному из значений break; // выход из оператора swith, чтобы не выполнять последующие операции}Как видно, этот оператор стравнивает ключ со значениями, перечисленными после ключевых слов case и выполняет тот код, который нам требуется. Так же, стоит усвоить новый тип переменной.eeprom определение_типа имя_перемнной=начальное_значение;Этой командой мы создаем переменную в энергонезависимой памяти EEPROM микроконтроллера. Начальное значение записывается в ячейки EEPROM только при программировании МК. А обращаться к этой переменной можно из любого места программы.Но! Не советую часто записывать в EEPROM новые значения, т.к. эта память выдерживает около 100 000 циклов записи, после чего ее работоспособность производителем не гарантируется.Поверьте, это не такая уж и большая цифра, если записывать новое значение, допустим, каждый раз при нажатии на какую-либо кнопку. В таком режиме наша конструкция проработает 2-3 года, после чего, даже при полностью исправном МК, потеряет возможность хранить данные без наличия питания...Если нужно организовать хранение часто меняющейся информации, например, настроек регулятора громкости и тембра, то их лучше хранить в оперативной памяти, а в EEPROM записывать, к примеру, при выключении усилителя Развернутого описания для самой программы не дам... Лентяй я Тем долее, всё должно быть понятно по комментариям Вот, собственно, ее текст:  /*****************************************************This program was produced by theCodeWizardAVR V1.25.9 StandardAutomatic Program GeneratorY Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.comProject : Version : Date    : 26.12.2008Author  : F4CG                            Company : F4CG                            Comments: Chip type           : ATtiny2313Clock frequency     : 1,000000 MHzMemory model        : TinyExternal SRAM size  : 0Data Stack size     : 32*****************************************************/#include <tiny2313.h>#include <delay.h>// Alphanumeric LCD Module functions#asm   .equ __lcd_port=0x18;PORTB

Комментариев нет:

Отправить комментарий