MCS51, вопросы перехода с "классики" на SiLabs...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Chip115 писал(а):Должно быть на оборот...с диодов считывать . так?

Да именно так..
Ты просто торопишься.. мя-же те написал про возвратные линии, а возвратные, это с которых считывается состояние матрицы клавиатуры..

Ничего, не тушуйся..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Chip115 »

Да,да... не тушуюсь ) Сча правлю код )
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Chip115 писал(а):Сча правлю код )

Про сопротивления не забудь.. :)
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Chip115 »

ВСе. дело ко сну..башка тупит . Элементарное сообразить не могу.
в общем буду ловить еденицу.
вот схема
Изображение
например хочу отследить нажатие кнопки SB3.
Выставляю на порт P1=0x08; // 001000
и проверяем условие
if (P1==0x0C) // нажата sb3? 001100
{

}

Проблема в том что при нажатии на кнопку, на P1.2 приходит 1,3 В. В момент нажатия напруга проседает на P1.4 до 2 В.
вот как я порт инициализировал

Код: Выделить всё

 P1MDOUT   = 0x38;       // P1.3-1.5 POut
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Пока конкретно по портам СиЛабса и их настройке ничего не могу сказать..
Но применительно к классике, если ты хочешь что-то считывать из порта надо сначала записать туда "единицу"..
Поэтому у тя должно быть сначала P1=0x0F, а потом при считывании P1==0x09

Резисторы на корпус, дадут при считывании лог.0, это если ни одна кнопка не нажата..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

Chip115 писал(а):например хочу отследить нажатие кнопки SB3.
Выставляю на порт P1=0x08; // 001000
и проверяем условие
if (P1==0x0C) // нажата sb3? 001100
{
}
Проблема в том что при нажатии на кнопку, на P1.2 приходит 1,3 В. В момент нажатия напруга проседает на P1.4 до 2 В.
вот как я порт инициализировал

Код: Выделить всё

 P1MDOUT   = 0x38;       // P1.3-1.5 POut

Что-то где-то не так. Мне кажется, неверный подход в присваении Р1, а потом в проверке его же значения — МК может взять значения из выходного буфера, а не считывать входной. Надо выставить единицы и нули на порте1 там, где это надо для сканирования SB3 (я не до конца понял где), а потом проверять конкретную ногу. Причём можно назначить ей имя и проверять, например, так: if(SB3 == 0)...
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а): потом проверять конкретную ногу.

Совершенно согласен с пушистым Gudd-Head-ом..
Сам пишу на АСМ-е и для задачи сканирования клавиатуры применяю побитовые операции../в Си они наверное тоже есть../

Обычно делаю так:
Подпрограмма сканирования клавиатуры выполняется автоматически для каждого столбца или строки клавиш,
по прерываниям от внутреннего таймера и её выходом является или код нажатой клавиши или битовая карта состояния этих клавиш..
Код нажатия или код, что ни одна из клавиш не нажата сохраняется в регистре..
Основная программа по ходу выполнения считывает этот код, но сама не занимается сканированием матрицы..

Chip115, а может стоит пересмотреть идеологию построения твоей программы, а подпрограмму сканирования можно и на АСМ-е написать и вставить в Си-шную...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15549
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение BOB51 »

где-то я уже эту матрицу 3*3 видел... :cry: (не так давно одному пушистищу для АТ3213 рисовал пример для такой шматрицы - садомазо однако)
маленькое дополение - для мехкнопушек не забывайте про "антидребезг" в начале и в конце нажатия - мож и "помеха" исчезнет :)))
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

BOB51 писал(а):не забывайте про "антидребезг"

Приветствую, пушистый..
Вот щас со сканированием доразберёмся и за антидребезг примемся.. :)

P.S. BOB51, почта сэрр !!!
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Chip115 »

В общем действительно проблема с кодом опроса клавы... Счас переделываю опросник. Заведу все в структуры и все это в прерывание по таймеру. Буду просто проверять флаги .
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

Chip115 писал(а):В общем действительно проблема с кодом опроса клавы...

Ну дык, и я про то же. Это какие должны быть жёсткие наводки, чтобы вместо "1" — "0" читался :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Chip115 писал(а):Буду просто проверять флаги .

Про дребезг не забудь.. :)
Gudd-Head писал(а):то какие должны быть жёсткие наводки

Первая, самая жёсткая - сопля на питание, а вторая - на корпус.. :)))
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Мяу всем..
Как говаривал кошак Карлсон - продолжаем разговор..

Добрался до своего IDE-шника, ещё от Cygnal-а, т.к. пишу на Металинке..

Попробовал прогнать пример для F300-го, но ругается уже при "пристёгивании" файла с регистрами:

Код: Выделить всё

                     35    $MOD8F300
****----------^-^---------^
****ERROR #1: Illegal character
****ERROR #10: Illegal or missing expression
****ERROR #1: Illegal character


Пробовал имя файла менять - не помогло..

Кто нить с подобными ругательствами сталкивался?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Кто нить с подобными ругательствами сталкивался?

Это только ошибки? Наверное, нужен полный листинг.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Вот полный листинг примера:

Код: Выделить всё

                       1    ;----------
                       2    ; F30x_ADC0
                       3    ;----------
                       4   
                       5    $MOD8F300
****----------^-^---------^
****ERROR #1: Illegal character
****ERROR #10: Illegal or missing expression
****ERROR #1: Illegal character
                       6    $TITLE(F300_ADC)
                       7    $PAGEWIDTH(132)
                       8    $NOPAGING
                       9   
  5FB4                10    SYSCLK      EQU      24500                ; SYSCLK frequency in kHz
                      11   
                      12   
                      13   
0000                  14                org   0
                      15     
0000                  16    ADC0_Init:
0000 75E802           17                mov   ADC0CN, #02h            ; ADC0 disabled, normal
                      18                                              ; track mode, ADC0 conversions
                      19                                                    ; initiated by overflow of
                      20                                                    ; Timer2
0003 75BBF8           21                mov   AMX0SL, #0f8h          ; select temp sensor as ADC0 input
                      22   
                      23                ; ADC conversion clock <= 7.5 MHz
0006 75BC18           24                mov   ADC0CF, #((SYSCLK / 7500) SHL 3)
                      25   
0009 43BC02           26                orl   ADC0CF, #02h            ; PGA gain = 2
                      27   
000C 75D10E           28                mov   REF0CN, #0eh            ; enable temp sensor; VREF = VDD;
                      29                                              ; bias generator is on
000F 43E604           30                orl   EIE1, #04h              ; enable ADC0 End of Conversion
                      31                                              ; Interrupt
0012 22               32                ret
                      33   
                      34    ;----------
                      35    ; End of file.
                      36   
                      37    END

VERSION 1.2h ASSEMBLY COMPLETE, 3 ERRORS FOUND

ERROR SUMMARY:
Line #5, ERROR #1: Illegal character
Line #5, ERROR #10: Illegal or missing expression
Line #5, ERROR #1: Illegal character
ADC0CF . . . . . . . . . . . . .  D ADDR  00BCH  PREDEFINED 
ADC0CN . . . . . . . . . . . . .  D ADDR  00E8H  PREDEFINED 
ADC0_INIT. . . . . . . . . . . .  C ADDR  0000H  NOT USED 
AMX0SL . . . . . . . . . . . . .  D ADDR  00BBH  PREDEFINED 
CPT0CN . . . . . . . . . . . . .  D ADDR  00F8H  PREDEFINED 
EIE1 . . . . . . . . . . . . . .  D ADDR  00E6H  PREDEFINED 
EIP1 . . . . . . . . . . . . . .                 UNDEFINED  NOT USED 
IE . . . . . . . . . . . . . . .  D ADDR  00A8H  PREDEFINED 
IP . . . . . . . . . . . . . . .  D ADDR  00B8H  PREDEFINED 
PCA0CN . . . . . . . . . . . . .  D ADDR  00D8H  PREDEFINED 
PSW. . . . . . . . . . . . . . .  D ADDR  00D0H  PREDEFINED 
REF0CN . . . . . . . . . . . . .  D ADDR  00D1H  PREDEFINED 
SCON0. . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED 
SMB0CN . . . . . . . . . . . . .  D ADDR  00C0H  PREDEFINED 
SYSCLK . . . . . . . . . . . . .    NUMB  5FB4H 
TCON . . . . . . . . . . . . . .  D ADDR  0088H  PREDEFINED 
TMR2CN . . . . . . . . . . . . .  D ADDR  00C8H  PREDEFINED 


Хитрость-то в том, что он этот файл с регистрами правильно читает и заменяет имена на адреса регистров..

Вот ещё непонятно, почему он написал:

Код: Выделить всё

EIP1 . . . . . . . . . . . . . .                 UNDEFINED  NOT USED  
Ведь в программе этот регистр не используется..

Мя не понимаю, на что он ругается..
Раньше, на старом компе такого небыло.. Вроде и Винда такая-же и всё остальное тоже.. :dont_know:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15549
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение BOB51 »

похоже программа не поняла директиву или не имеет в своем составе необходимого файла (не та версия IDE)
честно говоря - что ни модификация среды - то новые файлики... :shock:
по крайней мере это касается avr-studio&mpasm, что не мешает и силапсовой оболочке что-то подобное выделывать, но тут выплывут особенности "пристегнутого" компилятора... AVR-овский туда не пристегивается - в моем комплекте может подключить или keil или rida, но ни с тем ни с другим серьезно не занимался... тем более, что оба варианта "демо"
а из-за "случайно потерянных файлов" только закончил переустановку системы.... mpasm 8.73 на симуляторе "взбрыкнул"... :cry:
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Файл есть и он лежит там-же, где и программа..
И компилятор его читает, раз имена на конкретные адреса заменил.. /Компилятор, кстати DOS-овский../

К IDE-шнику он не пристёгивается, а после установки он уже там лежит в папке C:\CYGNAL\IDEfiles

Единственное, что мя этот файл сделал из другого, убрав расширение и переименовав..
У КЕЙЛа эти файлы имеют расширение "inc"..

Напомню, что IDE-шник не SiLabs-кий, а Cygnal-овский, версии 1.3 - он шёл с Металинковским АСМом безо всяких ограничений..
А начиная с версии 1.4 уже был "кастрированный" КЕЙЛ..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Напомню, что IDE-шник не SiLabs-кий, а Cygnal-овский, версии 1.3 - он шёл с Металинковским АСМом безо всяких ограничений..
А начиная с версии 1.4 уже был "кастрированный" КЕЙЛ..

Ничего в этом не понимаю, я писал в Silicon Laboratories IDE с КЕЙЛовским (?) компилятором СИ. У меня есть лекарство на снятие всех ограничений :idea:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение МитяРа »

Gudd-Head писал(а):компилятором СИ
Ты вроде написал, что на АСМе пишешь.. :roll: :)
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: MCS51, вопросы перехода с "классики" на SiLabs...

Сообщение Gudd-Head »

МитяРа писал(а):Ты вроде написал, что на АСМе пишешь.. :roll: :)

И там же я написал, что для СиЛаба пришлось фигачить на СИ. Кстати, я для того и попросил уважаемую администрацию сделать отдельную прикреплёную тему " Вопросы по С/С++ (СИ)", не привязаную к АВРовским компиляторам, т.к. с СиЛабами тут практически никто не работает.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»