Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Однажды на атмеле...
Программирую на баскоме для авра, но однажды узнал о таком бейсике для авра как FastAVR. Оказалось, что фаставр мог получать код более быстрый и компактный чем компиляторы си. Но почему-то проект фаставр был закрыт...
Много пользователей использовали фаставр и омечали его достоинсва. Даже сишники смирялись перед мощью этого компилятора для микроконтроллера.
Но почему-то легендарного компилятора не стало. Программисты забили тревогу и начали собственное расследование http://bascomavr.3bb.ru/viewtopic.php?id=376 . Давайте почитаем их мнение о фаставре и их расследовании.
Вот мнения людей о фаставр:
И все таки ОН - ЛУЧШИЙ!!!Кто-то хотел найти автора компилятора:Жаль что его"задушили"!
Кто-то подозревал диверсию со стороны автора баскома:Автор молчит, сайт -умер, телефоны - поменял, фирму - закрыл
У меня есть собственные предположения.Может его выкупили, скажем, тот же Марк мог выкупить FastAVR, тем самым, избавится от конкурента?
Если бы баском купил фаставр, то некоторые наработки из фаставр появились бы в баскоме, что привело бы к значительному улучшению баскома. Но этого не наблюдается. Да и по размерам капиталов фаставр и баском, наверно, были равны. Откуда же такие средства на покупку фаставра у баскома?
Могли бы тут "постараться" сишники? Звучит дико. Но давайте посмотрим на эту версию. Капитал фирм по производству компиляторов си для авра был достаточен что бы купить фаставр. Преимущество фаставр бросало тень на компиляторы си, а это уже был подрыв доверия к идеологии "си лучший язык программирования", что грозило в будущем к распространению других языков программирования и потерей части рынка для этих фирм. Мотивы были.
Как бы там ни было... Кто бы не сделал это злое дело. Одно останется в истории - на тот момент фаставр был одним из лучших(а может и лучшим) компилятором для авра.
Последний раз редактировалось Smalovsky; 04.03.2017 в 00:10.
¡Un momento, señor fiscal!
тут нужно искать руку оберона или может быть даже магию
Когда-то в России...
Оказывается в России был свой аналог ардуино! Причём программировалась плата контроллера не сиобразным языком, типа, вайринга, а бейсиком-интерпретатором.
http://www.cqham.ru/PLC_1.htm
http://www.cqham.ru/tbcgroup/download.htm
¡Un momento, señor fiscal!
Собсно из за бейсика и помер
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Перейдем от слов к делу, вот для таких проектов Bas подходит хорошо.
Есть куча ноутов, некоторые Dell. И при подключении БП в BIOS пишет что не определят тип БП
и отказывается работать на номинальной частоте проца и сбрасывает ее до 800мГц.
Все это как я выяснил происходит по причине того, что Dell определят БП через EEPROM установленную в БП и подключенную к среднему контакту штекера питания.
Она то и сгорела видимо из за контакта с внутренним кольцом которое является напряжением +19в
Дохлый EEPROM Dallas 2501
Погуглив сеть выяснил, что ее можно эмулировать, один немец написал проект для attiny13, есть еще скетч для ардуино но я не люблю эту среду, а вот платка мне нравится, так что я переправил исходник Bascom под arduino uno (частота и тайминги) , зашил из среды Bas-а в ардуину, подпаял два провода в БП и вот результат.
Блок определется (прошивка под 90W) есть еще 65W и 130W, эту примочку можно поставить в сам ноут (например на arduino nano или attiny13) и пользоваться неродными БП
Проц работает на номинале
И поделка, все было для проверки, для замены epprom конечно куплю arduini nano или attiny13 так как ардуина uno огромна для этих целей.
Исходник эмулятора EEPROM БП Dell 90W для BASCOM и платы arduino uno
' *************************** Mod Jamy 28.03.2017 **********************************
' Emulation eines DS2501 aus Dell Notebook netzteilen
' Entwicklung basiert auf folgenden Quellen :
' Dallas DS 2501/02 Datasheet
' Webseite Wolfgang Pöllinger -> www.wpö.de
' Webseite http://www.howtofixcomputers.com/for...in-108608.html
' Webseite http://www.laptop-junction.com/toast...stery-revealed
' Webseite http://www.ringwelt.de/computer/pc/d...-netzteil.html
' Webseite http://bascom.at.ua/publ/1-1-0-1
' Arduino
' 1Wire an Pin2 = PB3
'
'
'
'
' + VCC +5v
' +
' |
' .-.
' | | 4k7
' | |
' '-'
' | ___
' Dell 1 Wire o--o|___|---------> PB3 (arduino pin 11')
' 220R
'
'
'
' (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
$crystal = 16000000
$regfile = "m328Pdef.dat"
$hwstack = 32
$swstack = 8
$framesize = 16
Dim Incommand(2) As Byte
Dim Bytedat As Byte
Dim Bytedatbuffer As Byte
Dim I As Byte
Dim B As Byte
Dim Crc As Byte
Dim Bufstart As Byte
' Commands
Const Skip_rom = &HCC
Const Read_rom = &H33
Const Read_mem = &HF0
' we use port b .3
Const Dqpin = 3
Const Ipin = 0 ' value in DDRB for input
Const Opin = 1 ' value in DDRB for output
Dq Alias Pinb.dqpin
' Timings
Const Owpresent = 280 ' 150
Const Owpause = 90 '50
Const Owstrobe = 28 '15
Const Owdata = 45 '25
' Timer Delays
Const T1reset = 110 '60
Const Timeout = 225 '120
' *********************** TIMER and ISR
Config Timer0 = Timer , Prescale = 64
Stop Timer0
Enable Timer0
On Timer0 Isr Nosave
Timer_t0 Alias Tcnt0
'***************************************
Mainloop:
Waitreset:
Disable Interrupts
Timer_t0 = 0
Waitfall:
L1:
sbis pinb, DqPin
rjmp L1
L2:
sbic pinb, DqPin
rjmp L2
Start Timer0
Rwaitrise:
L01:
sbic pinb, DqPin
rjmp L01
L02:
sbis pinb, DqPin
rjmp L02
Stop Timer0
If Timer_t0 < T1reset Then Goto Waitreset
If Timer_t0 > Timeout Then Goto Waitreset
Sendpresense:
Waitus Owpause
Ddrb.dqpin = Opin
Waitus Owpresent
Ddrb.dqpin = Ipin
Timer_t0 = 0
Enable Interrupts
Readb:
Gosub Readbyte
Readb1:
If Bytedat = Read_rom Then Goto Readrom
If Bytedat = Skip_rom Then
Crc = 0
For B = 1 To 2
Gosub Readbyte
Incommand(b) = Bytedat
Bytedatbuffer = Crc Xor Incommand(b)
Crc = Crc8(bytedatbuffer , 1)
Next B
Gosub Readbyte ' empty read for high adress
'Bytedatbuffer = Crc Xor 00
Bytedat = Crc8(crc , 1)
Gosub Sendbyte
If Incommand(1) = Read_mem Then Goto Readmem
End If
Goto Waitreset
End
Readrom:
For B = 0 To 7
Bytedat = Lookup(b , Rom)
Gosub Sendbyte
Next B
Goto Waitreset
'----------------------------------
'================================
Readbyte:
For I = 0 To 7
L11:
sbis pinb, DqPin
rjmp L11
L12:
sbic pinb, DqPin
rjmp L12
Timer_t0 = 256 - T1reset
Start Timer0
Rotate Bytedat , Right
Waitus Owstrobe
Bytedat.7 = Dq
Next I
Stop Timer0
Return
'----------------------------------
Sendbyte:
Bytedatbuffer = Bytedat
For I = 0 To 7
L21:
sbis pinb, DqPin
rjmp L21
L22:
sbic pinb, DqPin
rjmp L22
Timer_t0 = 256 - T1reset
Start Timer0
If Bytedat.0 = 0 Then Ddrb.dqpin = Opin
Waitus Owdata
Ddrb.dqpin = Ipin
Rotate Bytedat , Right
Next I
Bytedat = Bytedatbuffer
Stop Timer0
Return
'-----------------------------------
Readmem:
Crc = 0
Bufstart = Incommand(2)
For B = Bufstart To 63
Bytedat = Lookup(b , Mem1)
'Print Hex(bytedat)
Bytedatbuffer = Crc Xor Bytedat
Crc = Crc8(bytedatbuffer , 1)
Gosub Sendbyte
Next B
Bytedat = Crc
Gosub Sendbyte
Goto Waitreset
' *********************** isr
Isr:
If Dq = 0 Then ' Das ist Strange mit den Goto aus der Isr rauszugehen.
'aber es läuft
Timer_t0 = T1reset
Goto Rwaitrise
Else
Goto Waitreset
End If
Return
'******************************
'*************** ROM **************************
Rom:
Data &H11 , &HB4 , &H91 , &H2F , &H05 , &H00 , &H00 , &HB8
'*************** mem 1 **************************
' Settings für 90 Watt Netzteil
Mem1:
Data &H44 , &H45 , &H4C , &H4C , &H30 , &H30 , &H41 , &H43
Data &H30 , &H39 , &H30 , &H31 , &H39 , &H35 , &H30 , &H34
Data &H36 , &H43 , &H4E , &H30 , &H43 , &H38 , &H30 , &H32
Data &H33 , &H34 , &H38 , &H36 , &H36 , &H31 , &H36 , &H31
Data &H52 , &H32 , &H33 , &H48 , &H38 , &H41 , &H30 , &H33
Data &H4D , &H7C , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF
Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF
Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF
[свернуть]
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
JV-Soft, как ты прошил уно из баскома? Я для Леонардо компилил хекс баскомом, а потом прошивал через специальную утилиту.
Вот здесь http://bascomavr.3bb.ru/viewtopic.php?id=1388#p20974
Может баском криво установился?
P.S. Если заливать через утилиту, то потом платка не определяется как ардуино и потом всё время придётся делать прошивки утилитой.
¡Un momento, señor fiscal!
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)