Перейти к содержанию
    

aai_m

Участник
  • Постов

    25
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о aai_m

  • Звание
    Участник
    Участник

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. AVR и Siemens M55

    В Донецке покупал дисплеи от х65 с LS020B8UD06 по цене эквивалентной 16 $ в магазинчике торгующим запчастями к мобильным телефонам. Думаю, что в Питере в подобных магазинах Вы сможете найти дисплеи от х65.
  2. Уважаемый SasaVitebsk, Вы можете, в качестве примера привести код при работе с таймером Т3 для MEGA128. Заранее благодарен. Уважаемый Дон Амброзио, есть три опытных образца и все ведут себя одинаково. Правда MEGA128 из одной партии. Может быть. Не охота конечно демонтировать MEGA128. Уважаемый KRS, поначалу SREG не сохранял, но сохранять советует описание ATMEGA128. Но эффекта нет. Возможно предлагают сохранять SREG по такой причине: "2. Interrupts may be lost when writing the timer registers in the asynchronous timer If one of the timer registers which is synchronized to the asynchronous timer2 clock is written in the cycle before a overflow interrupt occurs, the interrupt may be lost." (Errata ATmega128 Rev. M) стр. 370.
  3. Уважаемый KRS, спасибо за совет. Возьму на вооружение, но проблема в том, что 16 разрядные регистры таймера Т3 даже при правильном обращении STS ведут себя не адекватно.
  4. Позвольте с Вами не согласиться. Дело в том, что команда out P,Rr допустима для операндов P и Rr, где P - порт(или регистр имеющий адрестр в регистровом файле), а Rr - регистр общего назначения. Так вот TCNT3H, TCNT3L и т.д. не находятся в регистровом файле, а доступны лишь как память данных. Т.Е. КОМАНДА OUT К НИМ НЕ ДОПУСТИМА. $2D ($4D) TCNT1H Timer/Counter1 – Counter Register High Byte $2C ($4C) TCNT1L Timer/Counter1 – Counter Register Low Byte Для TCNT1H таймера Т1 возможно out $2D, Rr или sts $4D, Rr но для таймера T3 ($89) TCNT3H Timer/Counter3 – Counter Register High Byte доступно долько sts $89, R. См. стр. 361, 362 описания 2467P–AVR–08/07 http://www.atmel.com/dyn/resources/prod_do...nts/doc2467.pdf
  5. Проблема с Т3 в ATMEGA128

    Подобная тема поднималась уважаемым klen 16.11.2007 http://electronix.ru/forum/index.php?showt...%E0%E9%F2%E0%ED . К сожалению, проблема решена не была. Вернее уважаемый klen в частном случае решил, но сослася на потусторонние силы - "ШАЙТАН - БАЙРАМ" . Суть проблемы - по ходу работы программы необходимо останавливать и вновь запускать таймер Т3 и менять содержимое регистров OCR3A/OCR3B/TCNT3. Первичная инициализация Т3 проходит успешно: void timer3_init(void) { TCCR3B = 0x00; //stop TCNT3H = 0xC1; //setup TCNT3L = 0x81; OCR3AH = 0x07; OCR3AL = 0xCF; OCR3BH = 0x07; OCR3BL = 0xCF; OCR3CH = 0x07; OCR3CL = 0xCF; ICR3H = 0x07; ICR3L = 0xCF; TCCR3A = 0x00; TCCR3B = 0x09; //start Timer } Далее открываем фирменное описание на ATMEGA128 на странице 114 и читаем: "The TCNTn, OCRnA/B/C, and ICRn are 16-bit registers that can be accessed by the AVR CPU via the 8-bit data bus. The 16-bit register must be byte accessed using two read or write operations. Each 16-bit timer has a single 8-bit register for temporary storing of the high byte of the 16-bit access. ". Спасибо, что предупредили. Более того на странице 116 описания написано: "The following code examples show how to do an atomic write of the TCNTn Register contents. Writing any of the OCRnA/B/C or ICRn Registers can be done by using the same principle." И дается пример кода: TIM16_WriteTCNTn: ; Save global interrupt flag in r18,SREG ; Disable interrupts cli ; Set TCNTn to r17:r16 out TCNTnH,r17 out TCNTnL,r16 ; Restore global interrupt flag out SREG,r18 ret НО ЭТОТ КОД НИКОГДА РАБОТАТЬ НЕ БУДЕТ! Потому что, на странице 365 того же описания с изумлением читаем: ($89) TCNT3H Timer/Counter3 – Counter Register High Byte ($88) TCNT3L Timer/Counter3 – Counter Register Low Byte ($87) OCR3AH Timer/Counter3 – Output Compare Register A High Byte и т. д. Т. е. out TCNTnH,r17 в принципе не возможно(как к регистру ввода-вывода, т.к. такой регистр в регистровом файле отсутствует), а должно быть, по крайней мере, sts TCNTnH,R17 (как к адресному пространству памяти данных). Применяем вот такую функцию : void WriteOCR3A( unsigned int i ) { unsigned char sreg; CLI(); sreg = SREG; OCR3A = i; SREG = sreg; SEI(); } Но таймер Т3 правильно не настраивается. Причем есть действительно чертовчина. Например: TCCR3B = 0x00; //stop WriteTCNT3(Mem_TCNT); WriteOCR3A(Mem_D_Period); TCCR3B = 0x09; //start - не работает, TCCR3B = 0x00; //stop WriteTCNT3(Mem_TCNT); WriteOCR3С(Mem_D_Period); TCCR3B = 0x09; //start - не работает. В симуляторе AVRStudio(Version 4.14 Beta 2) все работает без проблем. Прошу помощи советом, ссылками для решения этой проблемы. Заранее благодарен.
  6. Использую мембранную клавиатуру(6х3) SK 16 фирмы "Testa Standart" http://www.agalsea.com/ms/testa_st.html. По трем столбцам организован "бегущий 0", читаем соответственно 6 строк одновременно. Используется клавиша "SHIFT" , есть борьба с дребезгом. Функция GetChar() взята из рабочего проета. Смотрите Джон23. GetChar.txt
  7. Часы

    i2c_avr.zip Получите, что просили
  8. Довольно долго искал разъемы под microSD Card, сегодня удалось приобрести. Предполагаю, что следующая информация будет интересна разработчикам по производителю разъемов под microSD Card: http://www3.alps.co.jp/alpscom/. А вот такой разъем доступен живьем (у поставщиков он "обзывается" APLS3633): SCHD_E.pdf
  9. Пользуюсь разъемами(под SD и MMC, вполне нормальные по качеству) фирмы AUK, для CF посмотрите здесь: http://www.aukconnector.com/SeriesDtl.asp?...amp;Serial=1201 Может знаете кто производит разъемы под микро SD? Подскажите, буду благодарен.
  10. Уважаемый Laksus, большое сласибо за замеченную и исправленную опечатку. Вы все правильно понимаете.
  11. Двумя словами трудновато, а двумя формулами по определению(1,2) см. Ud.rtf. Usm-среднее по модулю значение(оно же средневыпрямленное значение). Ud - средневкадратичное значение(оно же действующее значение) Применительно к дискретным значениям снимаемым с ADC вычисления по формулам 3, 4. Измерял среднее по модулю значение медленно меняющегося по амплитуде сигнала частотой около 1кГц(частота тоже немного дрейфовала). Для достижения требуемой точности приходилось делать выборку временного ряда 1024 отсчета. Ud.rtf
  12. Проблему точного выпрямителя решал следующим образом(см. Det.pdf) . Диоды лучше взять Шотки. Полоса пропускания зависит от "шустрости" ОУ и диодов. Det.pdf
  13. Tiny 2313

    Тогда пожалуй Tiny13 или Tiny26. Они выпускаются и доступны по цене. Уважаемый Mener, напишите в личное письмо. Попытаюсь помочь
  14. Tiny 2313

    Вопрос не полный. Какой частотный диапазон измеряемого сигнала? Какой требуется динамический диапазон? Часто бывает что встроенный ADC проблемы не решает. К сожалению. Что вы собираетесь измерять?
  15. Tiny 2313

    В ATiny2313 встроенного ADC отродясь не водилось.
×
×
  • Создать...