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

Kuzmi4

Свой
  • Постов

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

  • Посещение

Весь контент Kuzmi4


  1. Поймать вора!

    2 beer_warrior - согласен. схемы есть , но токо на пол метра - на метр так сразу я не встречал... Хотя наверно точно есть - не может не быть....
  2. Поймать вора!

    В принципе могу посоветовать чтото типа идеи ИК радара - недавно ваял такой для одного товарища - в принципе схемка простенькая.. Сча пороюсь - может найду линки...
  3. 2 aleksey_g - когда то ради интереса таки задался вопросм сколько может выдержать мега , правда под рукой была только 16-я(16пи).. Самое выше что поставил было 22 с копейками - чтоб усарт работал..В общем через пол часа работы она загнулась и не хотела через пару раз ресетов вообще запускаться, Хотя мен удивил сам факт запуска.....
  4. i2c

    Ну сбосно вот : In the Master Receiver mode, a number of data bytes are received from a Slave Transmitter .In order to enter a Master mode, a START condition must be transmitted. The format of the following address packet determines whether Master Transmitter or Master Receiver mode is to be entered. If SLA+W is transmitted, MT mode is entered, if SLA+R is transmitted, MR mode is entered. All the status codes mentioned in this section assume that the prescaler bits are zero or are masked to zero. Потом попадаем в моду и далее по плану... Собсно мнемоника такая - S SLA R A DATA A DATA ~A P А если словами - то 1)посылаем старт 2)сла+р - в оригинале - In order to enter MR mode, SLA+R must be transmitted. This is done by writing SLA+R to TWDR. 3)после сидим ждём .. потом делаем действия , в зависимости от полученного кода - When SLA+R have been transmitted and an acknowledgement bit has been received, TWINT is set again and a number of status codes in TWSR are possible. Possible status codes in Master mode are 0x38, 0x40, or 0x48. The appropriate action to be taken for each of these status codes is detailed in Table .... 4) после , как написано в оригинале - получаем дату... - Received data can be read from the TWDR Register when the TWINT 5) собсно самый интересный момент - After the last byte has been received, the MR should inform the ST by sending a NACK after the last received data byte. The transfer is ended by generating a STOP condition or a repeated START condition. 6) а после передачи 0х10(репстарт) мы входим в режим слэйва опять - в оригинале - After a repeated START condition (state 0x10) the 2-wire Serial Interface can access the same Slave again, or a new Slave without transmitting a STOP condition. ну и в окончании - Repeated START enables the Master to switch between Slaves, Master Transmitter mode and Master Receiver mode without losing control over the bus. Србсно вот и вся наука.. Flag is set high by hardware. This scheme is repeated until the last byte has been received.
  5. WinAVR и RETI

    2 aesok - я выше приводил листинг - это действительно 1 лишняя инструкция, которой могло и не быть.. а на счёт всё же этой темы - пришёл к выводу , что или 1 лишняя инструкция или делай сам( в принципе можна ещё порыться в линкере) ...
  6. WinAVR и RETI

    Ну как сказать - практический смысл в принципе есть. Если написать правильно программу - то никакого, с одной стороны, а с другой - если человек вдруг лепил на скорую руку проэкт и забыл чтото(взрослые дяди конечно так не делают , но мне далеко до них) - то этот ретИ в принципе очень поможет. ну + ещё то , что не занимается пару десятков байт на перенаправление... 2- Сергей Борщ - спа. Бум искать.
  7. WinAVR и RETI

    Хм.. вот что получилось.. ---------------------- #include<avr/io.h> #include <avr/iom168.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #include <util/twi.h> #include <util/crc16.h> // Medium speed - ATMega168 // /////////////////////////////// #define F_CPU 7372800 //Hz /////////////////////////////// #include <util/delay.h> /////////////////////////////// #include "file.h" /////////////////////////////// EMPTY_INTERRUPT(INT0_vect); int main (void) { return 1; } ----------------------- а на асме --------- +00000000: 940C0034 JMP 0x00000034 Jump +00000002: 940C0051 JMP 0x00000051 Jump +00000004: 940C004F JMP 0x0000004F Jump +00000006: 940C004F JMP 0x0000004F Jump +00000008: 940C004F JMP 0x0000004F Jump +0000000A: 940C004F JMP 0x0000004F Jump +0000000C: 940C004F JMP 0x0000004F Jump +0000000E: 940C004F JMP 0x0000004F Jump +00000010: 940C004F JMP 0x0000004F Jump +00000012: 940C004F JMP 0x0000004F Jump +00000014: 940C004F JMP 0x0000004F Jump +00000016: 940C004F JMP 0x0000004F Jump +00000018: 940C004F JMP 0x0000004F Jump +0000001A: 940C004F JMP 0x0000004F Jump +0000001C: 940C004F JMP 0x0000004F Jump +0000001E: 940C004F JMP 0x0000004F Jump +00000020: 940C004F JMP 0x0000004F Jump +00000022: 940C004F JMP 0x0000004F Jump +00000024: 940C004F JMP 0x0000004F Jump +00000026: 940C004F JMP 0x0000004F Jump +00000028: 940C004F JMP 0x0000004F Jump +0000002A: 940C004F JMP 0x0000004F Jump +0000002C: 940C004F JMP 0x0000004F Jump +0000002E: 940C004F JMP 0x0000004F Jump +00000030: 940C004F JMP 0x0000004F Jump +00000032: 940C004F JMP 0x0000004F Jump +00000034: 2411 CLR R1 Clear Register +00000035: BE1F OUT 0x3F,R1 Out to I/O location +00000036: EFCF SER R28 Set Register +00000037: E0D4 LDI R29,0x04 Load immediate +00000038: BFDE OUT 0x3E,R29 Out to I/O location +00000039: BFCD OUT 0x3D,R28 Out to I/O location +0000003A: E011 LDI R17,0x01 Load immediate +0000003B: E0A0 LDI R26,0x00 Load immediate +0000003C: E0B1 LDI R27,0x01 Load immediate +0000003D: EBE6 LDI R30,0xB6 Load immediate +0000003E: E0F0 LDI R31,0x00 Load immediate +0000003F: C002 RJMP PC+0x0003 Relative jump +00000040: 9005 LPM R0,Z+ Load program memory and postincrement +00000041: 920D ST X+,R0 Store indirect and postincrement +00000042: 30A0 CPI R26,0x00 Compare with immediate +00000043: 07B1 CPC R27,R17 Compare with carry +00000044: F7D9 BRNE PC-0x04 Branch if not equal +00000045: E011 LDI R17,0x01 Load immediate +00000046: E0A0 LDI R26,0x00 Load immediate +00000047: E0B1 LDI R27,0x01 Load immediate +00000048: C001 RJMP PC+0x0002 Relative jump +00000049: 921D ST X+,R1 Store indirect and postincrement +0000004A: 30A0 CPI R26,0x00 Compare with immediate +0000004B: 07B1 CPC R27,R17 Compare with carry +0000004C: F7E1 BRNE PC-0x03 Branch if not equal +0000004D: 940C0052 JMP 0x00000052 Jump +0000004F: 940C0000 JMP 0x00000000 Jump @00000051: __vector_1 ---- tst_reti.c ----------------------------------------------------------------------------------- 17: EMPTY_INTERRUPT(INT0_vect); +00000051: 9518 RETI Interrupt return @00000052: main 22: { +00000052: EFCF SER R28 Set Register +00000053: E0D4 LDI R29,0x04 Load immediate +00000054: BFDE OUT 0x3E,R29 Out to I/O location +00000055: BFCD OUT 0x3D,R28 Out to I/O location 25: } +00000056: E081 LDI R24,0x01 Load immediate +00000057: E090 LDI R25,0x00 Load immediate +00000058: 940C005A JMP 0x0000005A Jump +0000005A: CFFF RJMP PC-0x0000 Relative jump -------------------------- а я немного не то имелл вииду - мне бы в таблицу засунуть этот RETI .... Втсавка вместо EMPTY_INTERRUPT - void INT0_vect (void) даёт тож самое...
  8. WinAVR и RETI

    Тут такой вопрос - можно конечно и так, но это байт 20-40 на интерупт...Не так много конечно но всё же... Я имел ввиду, в идеале, что как то на уровне компилятора - как в иаре - на месте интерупта в таблице стоит ретИ - этож более удобно, и места меньше. А если нет , то как по другому ??
  9. WinAVR и RETI

    В общем вопрос этот возник давно, но как то раньше я без этого обходился, а тут уж совсем невтерпёж стало. Собсно вопрос такой - в иаре можно в таблице прерываний расположить для неиспользуемых векторов инструкцию RETI. На асме - вообще молчу. Но как это сделать для WinAVR??(исползую WinAVR-20060421). Раньше,когда надо было, извращался по разному, вплоть до СПМ... Но в принципе должно ж это как то решаться на уровне компилятора, как в иаре???
  10. 2 boez - как раз ДШ и нету...UT161-T6... а касательно питания и всё такое - не доходилы руки. так прозвонил - осталось впечатление что сдох чип, потому что при подаче питания никакого шевеления не наблюдалось.. но это моё субъективное мнение....
  11. 2 CD_Eater - хочу заметить, что внутр. стабилизатор не всегда хороший- была у мя флешка , гиговая, купил де то полтора года назад. и месяц назад сгорела - сделала мне подарок на НГ.Вот .. в результате опроса умных дядек и перелопачивания инета а так же собственных мыслительных процессов пришёл у выводу что сгорел вн стабилизатор с 5 на 3.3 вольта на контролере. а мелкосхему такую в украине только под заказ мона достать.. вот так и валяется у мя инфы метров 500 .... А был бы внешний стаб - поменял бы - и всё(ну или не всё... :-) ).. А на счёт ссылочки - действительно, где на это чудо можна глянуть??
  12. оки... сча вот порылся , нашёл проэкт.. сча заттачу усе ф-ции - пользуйтесь,разбирайтесь.Хотя мож коряво написаны - но писал давно, работают и ладно... файл который - "файл.Х" то там только объявы чтоб легче было...СОбсно: /***************************************************************************** Types definitions ******************************************************************************/ #define UCHAR unsigned char #define UINT unsigned int #define ULONG unsigned long #define BOOL UCHAR #define FALSE 0 #define TRUE 1 pcs1.txt _________.pdf
  13. ну в 2-х словах - просто меряеш не 1 раз а 256 и потом рез сдвигаеш на 8, но это хорошо для медленно меняющихся систем.А для быстрых - тут уже аналоговый тракт и все премудрости... И если не трудно можете описать что за ацп, опорный и какая ошибка всё таки??
  14. Ну незнаю незнаю.... Меня лично интересует то как организованы входные тракты, защита от наводки в осцилографах - вся эта кухня в общем. У меня есть конечно свои методы, но как говорится знаний не бывает мало - хотелось бы послушеть кто с чем сталкивался... А в осцилографах "маде ин буржуия" - ну не мне рассказывать как там всё на шифрах...Ничего конкретного никто не скажет....
  15. 2 viael & yarunt - Не могли бы вы выложить проэктик, если не трудно... сам задумывался над таким дЫвайсиком, но времени не было - под рукой всегда фирменное(в смысле предоставляемое, тобто не моё)..
  16. mega168+CP2102

    Всё... поменял, промыл - заработало...
  17. mega168+CP2102

    Не.. на максе ж работает... я склоняюсь к тому что при монтаже перепалил наверно цп.. сча попробую аккуратненько поменять... Если так как думаю - извините что потревожил...Первый раз с ЦП столкнулся - раньше 485 устраивало.....
  18. mega168+CP2102

    передаю сча вообще самой простой структурой... //send char proc void USART_Transmit( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !(UCSR0A & (1<<UDRE0)) ) ; /* Start transmittion */ UDR0 = data; } и собсно мэйн //USART_INIT(); // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART0 Mode: Asynchronous // USART Baud rate: 9600 UCSR0A=0x00; UCSR0B=0x98; UCSR0C=0x06; UBRR0H=0x00; UBRR0L=0x2F; //DDRD=0xFF; while (1) { _delay_ms(10); USART_Transmit(0x11); } А на счёт устройтсва - то я ж писал - всё красиво, порт есть ДТР дёргается.... А вот с передачей...... + Если брать макс232 - то така конструкция работает ......
  19. mega168+CP2102

    Драсте всем! Тут делаю устройство - конечный результат - чтоб по усб выдавало в комп пачку чисел -что намерял так сказать.Скорость не так важна, важен интерфейс потому остановился на CP2101, чтоб не заморачиваться .Подключаю CP2102 почти как по ДШ(рисунок прицепил). Поставил соответствующий софт.Запустил.Проверил в компе виртуальный ком-порт есть.В девайс манагере всё нормально.В ком порте пробую клацать лапками ДТР и РТС - на CP2101 - тоже переключаются. Но есть трабл - пробую передать что-то -байт какой нибдь - не передаёт , и когда по протоколу должен быть "0" то значение где то 0.2 вольта. Поспрашивал взрослых дядь - они сазали что главное чтоб лапки Д+ и Д- не перепутал, потом чтоб виртуалку сделало и скорость правильно выставить - а потом передавать-принимать и всё.. Если кто работал - посоветуйте.. По рисунку - РХД и ТХД - от соответствующих лапок меги, лайн1 и лайн2 - это на юсб д+- соответственно.
  20. Драсте всем! В прикреплённом файле - ф-ция и интерупт с помощъю которых я ловил манчестер для эм-мариновских карт - у них манчестерская кодировка данных + хитрый протокол передачи,кому надо - может пообкусывать чё не надо. Shnyaga.txt
  21. Здравствуйте. Вы меня конечно извините за мою неграмотность, но не подскажете где можно найти даташиты на такого типа дисплеи.
×
×
  • Создать...