BlauTood
Участник-
Постов
26 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о BlauTood
-
Звание
Участник
Контакты
-
ICQ
Array
-
В чем принципиальные различия. И что лучьше для разработки?
-
Большое ТЕБЕ andk спасибо за полный, качественый и понятный ответ.
-
#include <mega8535.h> #include <delay.h> unsigned char temp; unsigned char Knopka; void init(void); void port(void); void main(void) { init(); port(); } void port(void) { temp=PINA; if (temp==0xFF){ PORTB=0; delay_ms(20); port(); } else switch (Knopka) { Knopka=PINA; case 0xFE: PORTB++; delay_ms(1000); break; default: delay_ms(20); break; } port(); } void init(void) { PORTA=0x00; подтягивается внешне к + DDRA=0x00; PORTB=0x00; DDRB=0xFF; } Эфект: горят постоянно все лампочки и на кнопки не реагирует :( в чем трабл?
-
Так у меня же порт на вход настроен. На pine появляется 1 только когда портнастроен на выход. Покрайней мере так видно в avr studio. при отладки
-
сконфигурировал порт на вход DDRA=0x00; DDRC=0x00; подал я на него внешне 1, мне ее нужно считывать с PORTD? Правельно? вот код считывания: switch (Knopka) //êíîïêà 1 è 9 { Knopka=PORTA+PORTC; case 0x01: //êíîïêà 1,2,3 PORTB.1=1; delay_ms(20); break; case 0x02: PORTB.2=1; delay_ms(20); break; если да, то или у меня код не работает или на проце порты подпалил ( тогда тока не знаю как :( )
-
Спасибо. Я дурак переменную unsigned char temp; засунул после прерывания, а нужно было до всего вообще.
-
есть вот таккая фигня // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { char tempp; PORTB=0; tempp=0; #asm ("sei"); .... pause: while (tempp==1); Как сделать, чтобы после возврата из прерывания temp был равен 0, а не 1. А то после прерывания temp равен 1 :( prescan();
-
Как будет выглядить вот этот ASM код на С. и если не очень трудно, то с поямнениями!!! PLEASE За глупый вопрос не очень бейте. cbi PORTB,0 in temp,PINA sbrs temp,2 rcall stop rjmp lp4 и еще мне нужно примерно такое if ((PINA==0)&&(PINC==0)&&(PIND==0)) { А вот из PIND мне нужно знать только значение 6 и7 бита, состояние других бит мне не нужно, но на них может быть любые данные 0 1 в хаотичном порядке. prescan(); } else { delay_ms(1000); scan_klav(); };
-
Не правельно написал прога написанная на C в IAR не подходит к CodeVision!!
-
Почему одни исходники на С написанные в одной программе не подходят к другой программе. типа Iar, Code Vision и.т.д. И еще посоветуйте. Я писал до этого только на ASME/ Сам язык С я не знаю. В какой программе мне лучьше начать его изучение (IAR, Codevision и.т.д.) для порграмирования на AVR.
-
Видимо я не правильно понял и соответственно не правильно написал Вот кусок примера моей программы predscan: .if PINA == 0 || PINC == 0 || PIND == 0 rjmp predscan .else rcall delay rjmp scan .endif если все правильно написанно, то он ее компелирует, а если например точку не поставлю (.if), то пишит уже ошибку.
-
Спасибо. Теперь понятно. Жалко, что нельзя :((
-
Выдержка из AVR studio HELP This section introduces new features in AVRASM2 compared to AVRASM1.x. C-style Preprocessor Tightened Syntax New assembler directives Improved expression evaluation Built-in "known place" for included files Motorola hex for large files Macro improvements AVRASM2 Changelog C-style preprocessor AVRASM2 features directives modeled after the C preprocessor; see AVR Assembler 2 Preprocessor. Preprocessor symbols may be defined and undefined from the command line. Все пишется в AVR Studio 4.11 Выходной HEЧ. ошибок при компиляции недает.
-
мне нужно сделать анализ нажатия двух кнопок одновременно. Это обязательное условие. А еще я писать на с не умею, тока на ASME :(