Передавать нужно начиная с младшего бита. Регистры стоят 74HC595, судя по даташиту устанавливать данные, записывать в регистр и выводить информацию нужно по фронту если я правильно понял "LOW-to-HIGH transition". Вывод информации (третий вывод) нужно делать уже после записи всех битов тоесть в конце передачи.
Что ж вы ерундой маялись, сразу бы сказали, о чём речь. Я то подумал, что тут что-то не стандартное. Вопрос: как вы собирались запихать в бедный 8-битный регистр 32 бита? Функция для отправки на HC595 байта:
Никак не выходит загнать данные в четыре регистра hc595. Вот написал код для пробы и не выходит:
Код:
#include<mega16.h> #include<delay.h>
char hc595[8]={0,0,2,0,0,0,0,0}; // например нужно записать два в третий разряд
interrupt [TIM1_COMPA] voidtimer1_compa_isr(void) { // Place your code here char j,buf; signedchar i; for (i=7;i>=0;i--) {buf=hc595[i]; for (j=0;j<4;j++) {if(buf&0b00000001) PORTA.2=1; //проверяем флаг сдвига, если установлен, в DATA пишем 1 else PORTA.2=0; //иначе пишем 0 в DATA PORTA.1=1; //запись в регистр PORTA.1=0; buf=buf >> 1; // делаем логический сдвиг вправо } } PORTA.0=1; //строб PORTA.0=0; }
Вместо двойки в третем разряде записывается четвёрка в четвёртый разряд, если писать еденицу в третий разряд то пишется восемь в четвёртый разряд. Что я делаю не так?
С разрядами разобрался немножко не так разпаял нужно поменять местами 1-2, 3-4, 5-6, 7-8 потом исправлю, но цыфры, которые выводятся в разряды всёравно неправильные.
Вопрос снят. Исправил разряды а заодно и соединил так чтоб заганять начинать с старшего бита (благо выходы регистров на разёмах делал) подправил программу и всё заработало
Делаю проект считывание с датчика DS18B20 температуры микроконтроллером ATtiny2313 и вывод на LCD 16x2.
Вложение:
Комментарий к файлу: Схема в Proteus tiny2313 ds18b20.rar [14.8 KiB]
Скачиваний: 280
Код написал в CodeVisionAVR с помощью automatic program generator.
Вложение:
Комментарий к файлу: Программа в CodeVsion tiny2313.rar [72.74 KiB]
Скачиваний: 262
При компиляции выдает ошибку переполнения памяти контроллера.
Например, сдесь код писался в assembler AVR Studio http://radiokot.ru/circuit/digital/home/54/ так там и часы и календарь и термометр. Все влезло. А у меня даже температура не влазит.
собственно сам код... больше ничего все остальное CodeVisionAVR automatic program generator что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять
Скати, компилировал только генерированный код - пишет стек мал
Хочу к mega16 подключить ds1307 по I2C естественно. Как аппаратно управлять, может файл какой подключить короче с чего начать изучать I2C? Где можно примеры посмотреть с русскими коментами желательно?
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?! так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно. человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.
писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.
запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть
удачи, визардофилы и кодвижнолюбы
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?! так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно. человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.
писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.
запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть
удачи, визардофилы и кодвижнолюбы
согласен на 101% но в тоже время, не нужно заново придумывать велосипед.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения