C AT90S4433 на atmega 128

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

C AT90S4433 на atmega 128

Сообщение Shtef » 23 апр 2010, 19:06

Кто сможет помогите подредактировать прогу(она рабочая) написанную для AT90S4433 в VMLAB, чтоб работала на atmega128

Код: Выделить всё
;Листинг программы

;Описание переменных
.def scancode=r16
.def schscan=r17
.def schopr=r18
.def code=r19
.def keycode=r20
.def temp=r21
.def frec=r22
.def dlit=r23
.def zader=r24
.def zader1=r25

;Основная программа
;Определение таблицы переходов
.ORG $0         ;Начало таблицы переходов
reset:
rjmp  Start          ;Переход на метку Start основной программы
.ORG $6         ;Вектор прерывания при переполнении таймера T0
rjmp IntT0
.ORG $7           ;Начальный адрес основной пpогpаммы

Start:     ldi temp,$DF   ;Определение стека
          out SP,temp
          rcall Scan              ;Вызвать процедуру работы с клавиатурой
Frec:     out TCNT0,frec       ;Установить заданную частоту сигнала
          ldi temp,$3            ;Запустить таймер T0, fck/64
          out TCCR0,temp
        out OCR1L,dlit        ;Установить заданную длительность сигнала
        ldi temp,$81      ;Настроить таймер T1, PWM 8 бит
       out TCCR1A,temp
       ldi temp,$1       ;Запустить таймеp T1, fck/1
       out TCCR1B,temp
       ldi temp,$2       ;Разрешить прерывания от таймера Т0
       out TIMSK,temp
ldi temp,$3            ;Конфигурирование линий PB0 и PB1 на                                              ;вывод
       out DDRB,temp          
       sei                 ;Разрешить все пpеpывания
Work:     rjmp  Work             ;Рабочий цикл пpогpаммы, ничего не делаем


;Процедура cканирования клавиатуры
Scan:    clr scancode      ;Сброс scancode
           ldi temp,$0F ;Конфигурирование 4-х выводов порта D на вывод
           out ddrd,temp              ;и 4-х выводов на ввод
Stklav:    sec                       ;Установить флаг переноса
          ldi temp,$1                ;Назначить кл. S1 число 1
          ldi schscan,$4      ;Загрузка счетчика сканирования
          ldi code,$FE   ;Загрузка исходного байта сканирования
Schs:      out portd,code      ;Вывод байта сканирования в порт D
          rol code                   ;Сдвиг байта сканирования
          in keycode,pind            ;Ввод байта сканирования
          swap keycode      ;Поменять местами 4-е разряда байта возврата
          ldi schopr,$3               ;Загрузка счетчика опросов
Scho:       ror keycode             ;Сдвиг байта возврата
brcc Oprkl        ;Выход из прочедуры при обнаружении нажатой   ;клав.
If0:        inc temp                       ;Инкремент scancode
           dec schopr                    ;Уменьшить счетчик опросов
           brne Scho                 ;Если schopr=0, то перейти на метку Sсho
            dec schscan           ;Уменьшить счетчик сканирований
           brne Schs                  ;Если schscan=0, то перейти на метку Sсhs
            rjmp Stklav               ;иначе перейти на метку Klav

Oprkl:      cpi temp,$C      ;При обнаружении нажатой кл. "Ввод"
        breq Delay ;перейти на процедуру устранения дребезга контактов
mov scancode,temp         ;иначе сохранить значение нажатой кл.в   ;scancode
            rjmp If0                ;и продолжить сканирование клавиатуры

;Процедура устранения дребезга контактов клавиш
;Задержка около 10 мс   
Delay:      clr zader
            ldi zader1,$96
Delay1:  dec zader
            brne Delay1
            dec zader1
           brne Delay1

;Процедура задания сигналам частоты и длительности
Setkl:    cpi scancode,$0       ;Если нажата только кл. "Ввод", то
             breq If0                ;снова сканировать клавиатуру         
             cpi scancode,$1
             ldi frec,$D9          ;Задать частоту сигнала 800 Гц
             ldi dlit,$18      ;и длительность импульса ШИМ-сигнала 12 мкс
             breq Endkl
          cpi scancode,$2
          ldi frec,$ED         ;Задать частоту сигнала 1600 Гц
          ldi dlit,$30       ;и длительность импульса ШИМ-сигнала 24 мкс
          breq Endkl
          cpi scancode,$3
          ldi frec,$F3         ;Задать частоту сигнала 2400 Гц
          ldi dlit,$48       ;и длительность импульса ШИМ-сигнала 36 мкс
          breq Endkl
          cpi scancode,$4
          ldi frec,$F7         ;Задать частоту сигнала 3200 Гц
          ldi dlit,$60     ;и длительность импульса ШИМ-сигнала 48 мкс
          breq Endkl
          cpi scancode,$5
          ldi frec,$F9         ;Задать частоту сигнала 4000 Гц
          ldi dlit,$78       ;и длительность импульса ШИМ-сигнала 60 мкс
          breq Endkl
          cpi scancode,$6
          ldi frec,$FA          ;Задать частоту сигнала 4800 Гц
          ldi dlit,$90       ;и длительность импульса ШИМ-сигнала 72 мкс
          breq Endkl
          cpi scancode,$7
          ldi frec,$FB           ;Задать частоту сигнала 5600 Гц
          ldi dlit,$A8        ;и длительность импульса ШИМ-сигнала 84 мкс
          breq Endkl
          cpi scancode,$8
          ldi frec,$FC           ;Задать частоту сигнала 6400 Гц
          ldi dlit,$C0       ;и длительность импульса ШИМ-сигнала 96 мкс
          breq Endkl
          cpi scancode,$9
         ldi frec,$FD           ;Задать частоту сигнала 7200 Гц
         ldi dlit,$D8      ;и длительность импульса ШИМ-сигнала 108 мкс
        breq Endkl
      ldi frec,$FE           ;Задать частоту сигнала 8000 Гц
          ldi dlit,$F0     ;и длительность импульса ШИМ-сигнала 120 мкс
Endkl:      ret

;Пpоцедуpа пpеpывания по пеpеполнению таймеpа T0
IntT0:   push temp           ;Сохранить temp в стеке
      out TCNT0,frec   ;Пеpезагpузить таймер Т0
      in temp,SREG   ;Сохранить SREG
            sbis pinb,0       ;Если на PB0 был "0", то установить "1"
           rjmp Ust1        ;и наоборот
      cbi portb,0
      rjmp EndT0
Ust1:   sbi portb,0
EndT0:   out SREG,temp     ;Восстановление SREG
      pop temp             ;Выгрузить данные из стека
      reti                     ;Выйти из процедуры



Код: Выделить всё
;листинг проектного фйайла

; Micro + software running
; ------------------------------------------------------------
.MICRO "AT90S4433"
.PROGRAM "23.asm"
.TARGET "23.hex"

.TRACE              ; Activate micro trace

; Following lines are optional; if not included
; exactly these values are taken by default
; ------------------------------------------------------------
.POWER VDD=5 VSS=0  ; Power nodes
.CLOCK 4meg         ; Micro clock
.STORE 250m         ; Trace (micro+signals) storage time

; Micro nodes: RESET, AREF, PB0-PB5, PC0-PC5, PD0-PD7, ACO, TIM1OVF
; Define here the hardware around the micro
; ------------------------------------------------------------
K0 PD0 n1               ;Подсоединить клавишу "0" между выводом PD0 и точкой n1
K1 PD0 n2      ;Подсоединить клавишу "1" между выводом PD0 и точкой n2
K2 PD0 n3      ;Подсоединить клавишу "2" между выводом PD0 и точкой n3
K4 PD1 n1      ;Подсоединить клавишу "4" между выводом PD1 и точкой n1
K5 PD1 n2      ;Подсоединить клавишу "5" между выводом PD1 и точкой n2
K6 PD1 n3      ;Подсоединить клавишу "6" между выводом PD1 и точкой n3
K8 PD2 n1      ;Подсоединить клавишу "8" между выводом PD2 и точкой n1
K9 PD2 n2      ;Подсоединить клавишу "9" между выводом PD2 и точкой n2
KA PD2 n3      ;Подсоединить клавишу "A" между выводом PD2 и точкой n3

KC RESET GND           ;Подсоединить клавишу "C" между выводом RESET и GND
KD PD3 n2      ;Подсоединить клавишу "D" между выводом PD3 и ;точкой n2
KE PD3 n3      ;Подсоединить клавишу "E" между выводом PD3 и ;точкой n3
R1 PD4 n1 0.001k   ;Замкнуть вывод PD4 и точку n1
R2 PD5 n2 0.001k   ;Замкнуть вывод PD5 и точку n2
R3 PD6 n3 0.001k   ;Замкнуть вывод PD6 и точку n3

R4 n1 VDD 5k           ;Соединить резистор R4 между точкой n1 и VDD
R5 n2 VDD 5k           ;Соединить резистор R5 между точкой n2 и VDD
R6 n3 VDD 5k           ;Соединить резистор R6 между точкой n3 и VDD
.PLOT v(PB0) v(PB1)


Программа ждет задания с кнопки (1-С), дальше ожидает ввода кнопкой E ну и выводится ШИМ.
Заранее благодарен.
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 23 апр 2010, 23:18

Странно. У вас есть код старинного контролёра. Просите помочь портировать его на новый контролёр. И все. Подразумевается, что найдется некто, который сделает за вас и для вас эту работу, вы ему напишете "спасибо, все получилось" и дело с концом. Он потеряет время, ему лично эта программа не нужна, вы не научитесь чему-то новому. Все в проигрыше. Я не против помогать, но помогать не значит делать все за другого. Я вижу это так: ребята, помогите, неделю мучаюсь, не получается вот этот кусок, гляньте код, что не так. Вот это будет помощь, поскольку вы тоже участвуете в процессе.

Могу посоветовать проверить вектора прерываний, настройку стека, портов, короче контролёры отличаются внутренней перефирией, вот там порыться. И не ленитесь симулировать - кучу ошибок исправите на этом этапе.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение galex1981 » 23 апр 2010, 23:23

+1 Radist. Также считаю, что лучше помочь исправить ваш переделанный код
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 24 апр 2010, 13:04

Ну тогда вот то что я пытался сделать незнаю насколько это правильно я сам не очень разбираюсь
Код: Выделить всё

.def scancode=r16
.def schscan=r17
.def schopr=r18
.def code=r19
.def keycode=r20
.def temp=r21
.def frec=r22
.def dlit=r23
.def zader=r24
.def zader1=r25

;Основная программа
;Определение таблицы переходов
.ORG $0         ;Начало таблицы переходов
reset:
rjmp  Start          ;Переход на метку Start основной программы
.ORG $20       ;Вектор прерывания при переполнении таймера T0
rjmp IntT0
.ORG $22       ;Начальный адрес основной пpогpаммы

Start:     ldi temp,high(RAMEND)   ;Определение стека
          out SPH,temp
          ldi temp,low(RAMEND)   ;Определение стека
          out SPL,temp
          rcall Scan              ;Вызвать процедуру работы с клавиатурой
Frec:     out TCNT0,frec       ;Установить заданную частоту сигнала
          ldi temp,$4            ;Запустить таймер T0, fck/64
          out TCCR0,temp
          
        out OCR1AL,dlit        ;Установить заданную длительность сигнала                       
        ldi temp,$91      ;Настроить таймер T1, PWM 8 бит
       out TCCR1A,temp
       ldi temp,$1       ;Запустить таймеp T1, fck/1
       out TCCR1B,temp
       ldi temp,$2       ;Разрешить прерывания от таймера Т0
       out TIMSK,temp
ldi temp,$3            ;Конфигурирование линий PB0 и PB1 на                                              ;вывод
       out DDRB,temp          
       sei                 ;Разрешить все пpеpывания
Work:     rjmp Work             ;Рабочий цикл пpогpаммы, ничего не делаем


;Процедура cканирования клавиатуры
Scan:    clr scancode      ;Сброс scancode
           ldi temp,$0F ;Конфигурирование 4-х выводов порта D на вывод
           out ddrd,temp              ;и 4-х выводов на ввод
Stklav:    sec                       ;Установить флаг переноса
          ldi temp,$1                ;Назначить кл. S1 число 1
          ldi schscan,$4      ;Загрузка счетчика сканирования
          ldi code,$FE   ;Загрузка исходного байта сканирования
Schs:      out portd,code      ;Вывод байта сканирования в порт D
          rol code                   ;Сдвиг байта сканирования
          in keycode,pind            ;Ввод байта сканирования
          swap keycode      ;Поменять местами 4-е разряда байта возврата
          ldi schopr,$3               ;Загрузка счетчика опросов
Scho:       ror keycode             ;Сдвиг байта возврата
brcc Oprkl        ;Выход из прочедуры при обнаружении нажатой   ;клав.
If0:        inc temp                       ;Инкремент scancode
           dec schopr                    ;Уменьшить счетчик опросов
           brne Scho                 ;Если schopr=0, то перейти на метку Sсho
            dec schscan           ;Уменьшить счетчик сканирований
           brne Schs                  ;Если schscan=0, то перейти на метку Sсhs
            rjmp Stklav               ;иначе перейти на метку Klav

Oprkl:      cpi temp,$C      ;При обнаружении нажатой кл. "Ввод"
        breq Delay ;перейти на процедуру устранения дребезга контактов
mov scancode,temp         ;иначе сохранить значение нажатой кл.в   ;scancode
            rjmp If0                ;и продолжить сканирование клавиатуры

;Процедура устранения дребезга контактов клавиш
;Задержка около 10 мс   
Delay:      clr zader
            ldi zader1,$96
Delay1:  dec zader
            brne Delay1
            dec zader1
           brne Delay1

;Процедура задания сигналам частоты и длительности
Setkl:    cpi scancode,$0       ;Если нажата только кл. "Ввод", то
             breq If0                ;снова сканировать клавиатуру         
             cpi scancode,$1
             ldi frec,$D9          ;Задать частоту сигнала 800 Гц
             ldi dlit,$18      ;и длительность импульса ШИМ-сигнала 12 мкс             
             breq Endkl
          cpi scancode,$2
          ldi frec,$ED         ;Задать частоту сигнала 1600 Гц
          ldi dlit,$30       ;и длительность импульса ШИМ-сигнала 24 мкс            
          breq Endkl
          cpi scancode,$3
          ldi frec,$F3         ;Задать частоту сигнала 2400 Гц
          ldi dlit,$48       ;и длительность импульса ШИМ-сигнала 36 мкс
          breq Endkl
          cpi scancode,$4
          ldi frec,$F7         ;Задать частоту сигнала 3200 Гц
          ldi dlit,$60     ;и длительность импульса ШИМ-сигнала 48 мкс
          breq Endkl
          cpi scancode,$5
          ldi frec,$F9         ;Задать частоту сигнала 4000 Гц
          ldi dlit,$78       ;и длительность импульса ШИМ-сигнала 60 мкс
          breq Endkl
          cpi scancode,$6
          ldi frec,$FA          ;Задать частоту сигнала 4800 Гц
          ldi dlit,$90       ;и длительность импульса ШИМ-сигнала 72 мкс
          breq Endkl
          cpi scancode,$7
          ldi frec,$FB           ;Задать частоту сигнала 5600 Гц
          ldi dlit,$A8        ;и длительность импульса ШИМ-сигнала 84 мкс
          breq Endkl
          cpi scancode,$8
          ldi frec,$FC           ;Задать частоту сигнала 6400 Гц
          ldi dlit,$C0       ;и длительность импульса ШИМ-сигнала 96 мкс
          breq Endkl
          cpi scancode,$9
         ldi frec,$FD           ;Задать частоту сигнала 7200 Гц
         ldi dlit,$D8      ;и длительность импульса ШИМ-сигнала 108 мкс
        breq Endkl
      ldi frec,$FE           ;Задать частоту сигнала 8000 Гц
          ldi dlit,$F0     ;и длительность импульса ШИМ-сигнала 120 мкс
Endkl:      ret

;Пpоцедуpа пpеpывания по пеpеполнению таймеpа T0
IntT0:   push temp           ;Сохранить temp в стеке
      out TCNT0,frec   ;Пеpезагpузить таймер Т0
      in temp,SREG   ;Сохранить SREG
            sbis pinb,0       ;Если на PB0 был "0", то установить "1"
           rjmp Ust1        ;и наоборот
      cbi portb,0
      rjmp EndT0
Ust1:   sbi portb,0
EndT0:   out SREG,temp     ;Восстановление SREG
      pop temp             ;Выгрузить данные из стека
      reti                     ;Выйти из процедуры


Листинг проектного тот же
Код: Выделить всё
Тут ошибка появляется но не сразу я думаю что после таймера не проходит какое то прерывание
Work:     rjmp Work             ;Рабочий цикл пpогpаммы, ничего не делаем


Добавлено спустя 52 минуты 17 секунд:
Radist писал(а):Я вижу это так: ребята, помогите, неделю мучаюсь, не получается вот этот кусок, гляньте код, что не так. Вот это будет помощь, поскольку вы тоже участвуете в процессе.

Дак вот я немогу найти этот кусок ошибка на пустом месте пишет и где эта ошибка я непойму
единственное я думаю что-то с тайммером.

Добавлено спустя 42 минуты 28 секунд:

Frec: out TCNT0,frec ;Установить заданную частоту сигнала
ldi temp,$4 ;Запустить таймер T0, fck/64

out TCCR0,temp

;в peripherals в timer 0 пишет mode:no pwm(шип). в 128 наверное нужно задать подругому если кто знает подскажите
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 24 апр 2010, 16:57

К сожалению, я все проги писал в студии, но асемблер-то один и тот же. С шимом проблем не было. Чтоб пошел шим, надо:
- настроить таймер в режим шима
- загрузить в регистр сравнения число
- запустить таймер
Теперь нюансы. Шимов есть как минимум два типа - быстрый и фазокорректный. Что конкретно нужно сделать:
- читаем даташит в той части, где описаны биты управляющих регистров таймера
- определяем, какие биты нам надо установить, а какие сбросить
- определяем, какие числа надо записать в регистры таймера
- записываем их
- прогоняем на симуляторе.
Еще раз напишу - я всегда писал и отлаживал программы в студии. Она проверяет только на ошибки синтаксиса, что в общем то хорошо. Студия бесплатна, так что рекомендую. Симулятор в ней очень хороший. Есть еще протеус, но я с ним не работал, поэтому ничего не скажу.

Добавлено спустя 2 минуты 6 секунд:
НИКОГДА не давайте имена меткам такие же, как и имена переменных
(я про Frec и frec)
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 24 апр 2010, 18:14

Если можно напишите полное название желательно на англ этой студии (это возможно она GSS Visual Assembler)
числа в регистры записываются таймер идет когда переходит после таймера на .ORG $20 на work появляется ошибка "[PC = $0034, Time = 81.24 ms]: TIMER is in PWM mode: some OC pin not defined as output" она возникает я так понимаю когда идет прерывание а вот почему она там появляется я не пойму
Если можно напишите полное название желательно на англ этой студии (это возможно она GSS Visual Assembler)
числа в регистры записываются таймер идет когда переходит после таймера на .ORG $20 на work появляется ошибка "[PC = $0034, Time = 81.24 ms]: TIMER is in PWM mode: some OC pin not defined as output" она возникает я так понимаю когда идет прерывание а вот почему она там появляется я не пойму

А да при компиляции ошибок нет только при запуске и кнопки нормально все работают потом значение в таймер записывается, таймер нормально доходит до 0 и потом прерывание идет и ошибка.
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 25 апр 2010, 09:16

AVRStudio
Берется с www.atmel.com
www.atmel.ru
Я пользуюсь версией 4.12
Есть и посвежее, но сами понимаете, когда выходит новая версия садишься на нее и собираешь кучу глюков, а к 4.12 у меня претензий нет (правда она не симулирует один из таймеров в ATTiny25/45/85).
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 25 апр 2010, 14:19

на AVRStudio у меня даже рабочая прога не пошла невидит timsk не видит порты не видит sreg
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 25 апр 2010, 17:31

Если студия не понимает символьных имен, значит эти имена не были заранее определены. Чудес не бывает. Для этого проверяйте дефайны и инклуды. Если не знает срег, значит ей никто не сказал, что срег = $3f
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 25 апр 2010, 19:49

с этим разобрался а куда записывается листинг проектного файла там где я задаю кнопки и сам плот
и контрольная панель (там где я жму эти кнопки) ну и конечно же скоп
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 25 апр 2010, 21:34

Очевидно в папку, в которой находится проект. А если их там нет, то либо:
- вы не задали студии команду это сделать
- студия физически не может это делать.
Когда я работаю со студией, она создает следующие виды файлов:
- файл проекта
- асемблерный файл
- файл для отладчика obj
- файл для прошивки hex
Мне лично ничего больше не надо. Можно сделать таблицу данных в еепром, будет файл с eep расширением. Вообще студия при компиляции пишет, какие файлы она создает, в нижнем окошке.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 25 апр 2010, 22:05

ну я в вмлаб задаю как раз в файле проекта но в студии в этот файл ничего нельзя создать
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46

Re: C AT90S4433 на atmega 128

Сообщение Radist » 26 апр 2010, 07:36

Повторяю - у меня есть только студия. По вмлаб ничего подсказать не могу. Во вложении находится проект из первого поста, подрихтованный под мегу 128. Я не утверждаю, что он рабочий, поскольку алгоритма я не понял (по программе это сложно сделать). Проект компилится без ошибок, с ним уже можно работать. Что я подрихтовал:
- стек у меги двухбайтный
- таблица векторов прерываний в разы больше, рихтовал орги
- метка фрег совпадала с переменной фрег (нафиг она нужна вообще, на нее никто не ссылается)
- переменная длит не была инициализирована

Будут вопросы - смогу консультировать только если проект в студии
вопросы желательно в таком виде: мне надо тото тото, для этого я сделал вот это, а в место этого у меня получилось вот то. И еще: чтение даташита снимает 95% проблем. Проблема с английским - читайте в переводе тут:
http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm
Вложения
help.zip
(8.35 КиБ) Скачиваний: 0
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: C AT90S4433 на atmega 128

Сообщение Shtef » 29 апр 2010, 03:48

Я нашел ошибку и она в том что компаратор не пашет то есть листинг проектного файла в частности подключение клавиатуры к МК неверен ток вот схему подключения клавиатуры для 128 я найти нему((
там счетчик на сравнение а сигнал он сохраняет при совпадении с компоратора который почемуто не задается и прерывание от него тоже
Shtef
 
Сообщения: 7
Зарегистрирован: 23 апр 2010, 18:46


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25