Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

да :)
Я не Сашок!!!
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

http://www.fischl.de/usbasp/

блин, не понимаю, для чего выводы TXD и RXD в разъеме для программирования? вроди бы стандиртный набор выводов - MISO,MOSI,RESET,SCK,GND,Vcc.
Не умеешь - не берись, но не взявшись не научишься...
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Вот не понятно про этот программатор.
Какие он МК программирует, я понял, что атмел.
Под каким софтом работает?
Стоит собирать? Мне вроди нравится) только мне надо - разъем вставил, открыл авр студио, наприсал прогу, открыл (забыл как называется) и прошил МК.

[url]http://yuki-lab.jp/hw/usbasp/index-e.html
[/url]
Не умеешь - не берись, но не взявшись не научишься...
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

и что это означает?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Kerya писал(а):Здравствуйте.
Подскажите пожалуйста по схематике в ISE 9.2.
Есть восми разрядный счетчик ( CB8CE ) c общей шиной на выходе
( Q7:0 ) которая соеденина с 8 разрядным мультивибратором при
помощи Add bus tap.Как мне указать к какому пину в шине он конкретно привязан?


мультичего? А по существу, это все решается именованием цепей. Например, шину назови counter_out(7:0), а цепь подключенную через tap - counter_out(5).
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

откуда они взяли числа 44, 640 и 3200?
Вложения
0huJtuVYNh.jpg
(73.97 КБ) 387 скачиваний
OzThu462Ey.jpg
(88.26 КБ) 377 скачиваний
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

Если было бы записано:

X = C * 10 + Y;

то компилятор бы сначала выполнил умножение C на 10, ориентируясь на размер переменной C -- один байт (она объявлена как char). 30 * 10 = 300, но это математически, а в программировании значение 300 в байт не влезет, поэтому старшие разряды будут отброшены, и получится значение 44. Ну а поскольку там указано явное привидение типа, компилятор знает, что перед умножением надо C расширить до 2 байт (тип int), что позволяет выполнить умножение корректно.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

SII писал(а):Если было бы записано: X = C * 10 + Y; то компилятор бы сначала выполнил умножение C на 10, ориентируясь на размер переменной C -- один байт (она объявлена как char) ... поэтому старшие разряды будут отброшены, и получится значение 44 ...
Явное приведение к int здесь нафиг не нужно, так как компилятор сделает его сам, согласно стандарту языка, так что - никакого "один байт" там не будет!
Не надо читать книги всяких "теоретиков", читай стандарт языка Си или Кернигана-Ричи, и тогда все сработает и выражение выдаст правильный результат – 500, а не 3200, и не 640.
Изображение
Или хотя бы проверяй в компиляторе, прежде чем давать такие пояснения...
Изображение
Обоим (Dexa и SII):
У того автора явные проблемы с излагаемым материалом - чтобы получилось так, как он подразумевал (правильное значение – 3200), нужно было бы, чтобы знаковая переменная изначально хранила значение 300, чего, по понятным причинам, быть не может, даже если в следующей строке будет преобразование к int (которое, кстати, также будет произведено не над самой переменной, а только над промежуточным значением, использованным в процессе вычисления выражения "x = (int)c*10 + y;"). Изображение
640 получится, если попытаться проинициализировать переменную char значением 300 (предположим, что нолик не пропечатался в книге, хотя у автора в его программе он был), но эти 640 уже не превратить в 3200 явным приведением к int, во время вычисления упомянутого выражения - так 640 и останется. Убедитесь сами и выбросьте ту книгу "в печку":
Изображение
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

Yellow Tiger

1) Не сравнивайте C++ на персоналке с простыми сями на микроконтроллере -- это две большие разницы.

2) Я _лично_ натыкался на невыполнение компиляторами автоматических преобразований типов. Ну а что там положено по стандарту или что написали K&R, лично меня не очень волнует, меня волнует только реальная жизнь. А она такова, что во избежание проблем, если ты не знаешь _абсолютно точно_, как поступает тот или иной компилятор, надо использовать явное приведение типов.

Пы.Сы. Именно из-за нежелания бодаться со странностями Си, как и вообще из-за нелюбви к его уродскому синтаксису, допускающему появление кучи ошибок, для микроконтроллеров я пишу исключительно на ассемблере. Ну а для ПК, если нет требований насчёт языка со стороны заказчика -- на Паскале и/или ассемблере.
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

Всем спасибо, но кому верить так и не понял? Компилятор в книге WinAVR. Я только начал изучать и как посмотреть программно в самом компиляторе я не знаю (буду рад подсказке).
С цифрой 44 все понял, запись идет справа налево, т.е. сначала младшие биты, а потом старшие. В итоге отбросив старшие которые не поместились получилось число 44. Ну бог с ним, теперь после явного приведения типов допустим там 300 - 100101100, прибавим 200 (в бинарном это 11001000) и получим 111110100, что равно 500. Откуда автор взял числа 3200 и 640?!
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

Так будем считать что автор и книга плохие, хотелось бы книжку по С для мк, желательно AVR, а не С для компа, если есть поделитесь. Заранее благодарен!
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Dexa писал(а):Откуда автор взял числа 3200 и 640?!
Все просто - автор всерьёз верил в то, что вот эта инициализация переменной:

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

char    c = 300;
приведёт к тому, что в переменной c действительно будет храниться значение 300 (это ошибка). Далее, автор верил и в то, что без явного приведения типов выражение "c*10" будет считаться в размерности char (это тоже ошибка), а с явным преобразованием - в размерности int. Если не учитывать все эти заблуждения, то получилось бы именно 640 и 3200:
- без приведения типа к char: low(300)*10 + 200 = 44*10 + 200 = 640
- а с приведением типа к char: 300*10 + 200 = 3000 + 200 = 3200
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

Yellow Tiger писал(а):
Dexa писал(а):Откуда автор взял числа 3200 и 640?!
Все просто - автор всерьёз верил в то, что вот эта инициализация переменной:

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

char    c = 300;
приведёт к тому, что в переменной c действительно будет храниться значение 300 (это ошибка). Далее, автор верил и в то, что без явного приведения типов выражение "c*10" будет считаться в размерности char (это тоже ошибка), а с явным преобразованием - в размерности int. Если не учитывать все эти заблуждения, то получилось бы именно 640 и 3200:
- без приведения типа к char: low(300)*10 + 200 = 44*10 + 200 = 640
- а с приведением типа к char: 300*10 + 200 = 3000 + 200 = 3200


Хм... Насчёт char c = 300; -- мой глюк. Я действительно _не обратил внимания_ на то, что в книге присваивается значение, превышающее по размеру байт, байтовой переменной со всеми из этого вытекающими, и смотрел только на вычисление выражения. А вот явное приведение типов вполне может потребоваться: как я уже писал, у меня _в реальной жизни_ бывали случаи, когда без явного приведения выражения вычислялись неправильно именно из-за "обрубания" старших разрядов. Если найду на работе пример кода, приведу его вместе с указанием точной версии компилятора.

Пы.Сы. Вы можете думать о моей квалификации, уровне знаний и т.д. что Вам угодно. Однако из того, что я предпочитаю не использовать Си/Си++, отнюдь не вытекает логически, что я этих языков не знаю. Попробуйте на досуге поразмыслить над причинно-следственными связями в этом вопросе.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Если уж говорить о причинно-следственных связях, то следует, прежде всего, отметить, что Вы их ищете не там:
SII писал(а):из того, что я предпочитаю не использовать Си/Си++, отнюдь не вытекает логически, что я этих языков не знаю.
Я привел конкретно тот раздел языка Си, который необходимо было знать, чтобы не допустить ошибку. Предпочтения тут вовсе ни при чем - они лишь приправа к блюду.
Вы, может быть, подумали, что я как-то заинтересован в том, чтобы показать Вам, чего Вы в языке Си не знаете - это не так. Я лишь показал Вам, чего Вы не знаете (уверен - так поступил бы любой другой собеседник), но доказывать это я не буду - не вижу в этом никакого смысла. Не хотите знать Си - не знайте его на здоровье, но зачем же навязывать своё незнание другим? Извините, я не понимаю этого...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

SII писал(а):как я уже писал, у меня _в реальной жизни_ бывали случаи, когда без явного приведения выражения вычислялись неправильно именно из-за "обрубания" старших разрядов.
по данному вопросу можно сказать только следующее:
1. вы все-таки недопоняли своей собственной ошибки и приписали ее компилятору
2. компилятор у вас на самом деле глючный, и должен последовать вслед за упомянутой ранее "плохой" книжкой - ф топпку.

третьего не дано.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

странное включение электролитический конденсаторов... минусом к плюсу, и плюсом к минусу. Почему так? так правильно?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

странное включение электролитический конденсаторов... минусом к плюсу, и плюсом к минусу. Почему так? так правильно?

Правильно именно так.
Из DS:
Изображение
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Stalker46 писал(а):Почему так?

это нужно для стабилизации напряжения после умножителя напряжения. плюсом на землю, потому что на минусе (13 ножка) отрицательное напряжение ( -10...12 Вольт) и оно меньше потенциала на земле. минусом на плюсе потомучто на 9ой ноге высокое напряжение + 10..12 Вольт.
Ставим плюсы: )
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

ARV писал(а):
SII писал(а):как я уже писал, у меня _в реальной жизни_ бывали случаи, когда без явного приведения выражения вычислялись неправильно именно из-за "обрубания" старших разрядов.
по данному вопросу можно сказать только следующее:
1. вы все-таки недопоняли своей собственной ошибки и приписали ее компилятору
2. компилятор у вас на самом деле глючный, и должен последовать вслед за упомянутой ранее "плохой" книжкой - ф топпку.

третьего не дано.

так посоветуйте хорошую по авр и С
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Хотелось бы запитать устройство от USB. Но где выводы питания для USB? Всмыле в самом разъеме... :oops:
Не умеешь - не берись, но не взявшись не научишься...
Ответить

Вернуться в «Разные вопросы по МК»